Hi,
I´m trying to use a Marvell 88w8686 chip with a DM6446 and the libertas
driver. So far it looks promising as the libertas is able to detect the
chip, send the firmware to it and configure it. But when I try to set
the essid with the iwconfig command:

  iwconfig eth1 essid TEST

I have a kernel Oops:

Begin kernel log
------------------------------------------------------------
mmc0: starting CMD53 arg 12000020 flags 000001b5
mmc0:     blksz 32 blocks 1 flags 00000200 tsac 1000 ms nsac 0
davinci_mmc davinci_mmc.0: MMCSD : Data xfer (block read), DTO 0 cycles
+ 1000000000 ns, 1 blocks of 32 bytes davinci_mmc davinci_mmc.0: CMD53,
arg 0x12000020, R1/R5/R6/R7 response mmc0: req done (CMD53): 0:
00002000 00000000 00000000 00000000 mmc0:     32 bytes transferred: 0
davinci_mmc davinci_mmc.0: host->data is NULL
Unable to handle kernel NULL pointer dereference at virtual address
00000014 pgd = c0004000
[00000014] *pgd=00000000
Internal error: Oops: 17 [#1]
Modules linked in: davinci_mmc libertas_sdio libertas mmc_core dspload
dm6446 vlynq fpgadl_ser fpgadl firmware_class davinci_spi_bb
spi_bitbang CPU: 0    Not tainted
(2.6.28-davinci1-06576-g2e9a3f4-dirty #20) PC is at mmc_davinci_dma_cb
+0x68/0xb0 [davinci_mmc] LR is at mmc_davinci_dma_cb+0x60/0xb0
[davinci_mmc] pc : [<bf0744fc>]    lr : [<bf0744f4>]    psr: a0000013
sp : c393bc18  ip : c393bc18  fp : c393bc2c r10: fec00300  r9 :
00000001  r8 : fec00308 r7 : fec02040  r6 : fec00000  r5 : 00000000
r4 : c3ad7a60 r3 : 00000000  r2 : c3ad7800  r1 : fec02008  r0 : bf075250
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 0005317f  Table: 83a24000  DAC: 00000017
Process ksdioirqd/mmc0 (pid: 417, stack limit = 0xc393a268)
Stack: (0xc393bc18 to 0xc393c000)
bc00:                                                       c393bc8c
0000001b bc20: c393bc6c c393bc30 c0027b1c bf0744a4 ffffffff 00000000
c3846340 00000000 bc40: c3846340 c3846340 00000000 00000000 00000011
c0267768 00000001 c393a000 bc60: c393bc8c c393bc70 c00528a4 c0027a50
c0251270 00000011 c3846340 c02512a4 bc80: c393bcb4 c393bc90 c0054464
c0052870 c393bcac 00000011 00000000 c3859bd8 bca0: c3818d40 c025ef08
c393bccc c393bcb8 c001e064 c0054380 ffffffff fec48000 bcc0: c393bd24
c393bcd0 c001e9f4 c001e010 c025ef08 00000000 ffffffff 60000013 bce0:
00000000 c3859a80 c3859bd8 c3818d40 c025ef08 00000001 c393a000 c393bd24
bd00: c393bd18 c393bd18 c01c9b0c c01c9b18 60000013 ffffffff c393bd54
c393bd28 bd20: c01c7ab4 c01c9b0c c393bd4c c393be00 00000000 7fffffff
7fffffff c393a000 bd40: 00000000 00000002 c393bd8c c393bd58 c01c7da4
c01c7940 00000001 00000020 bd60: 7fffffff c393bdfc 00010000 c393be00
c393be00 00000000 7fffffff c393bdfc bd80: c393bdd4 c393bd90 c01c7810
c01c7d94 3b9aca00 00000001 c3859a80 c002a3d4 bda0: c393be10 c393be10
00080004 00000001 00000020 c393bea4 c3ad7800 00010000 bdc0: 00000000
00000000 c393bde4 c393bdd8 c01c792c c01c7740 c393be44 c393bde8 bde0:
bf02c964 c01c7924 00000200 000003e8 00000000 00000000 c3ad78d4 00000001
be00: 00000001 dead4ead ffffffff ffffffff c393bda0 c393bda0 00000001
dead4ead be20: ffffffff ffffffff c393be4c 00000020 00000001 c3b4ac00
c393beec c393be48 be40: bf030428 bf02c75c 00000001 3b9aca00 00000000
00000020 00000001 00000000 be60: 00000200 00000020 00000000 c393bea4
00000001 c393beb8 00000035 12000020 be80: 00002000 00000000 00000000
00000000 000001b5 00000000 00000000 c393be4c bea0: c393bea4 c393be78
c393be4c 00000000 c393bdfc bf02ca04 c033bc02 00000018 bec0: 83b60018
00000020 00000100 00000020 00000020 c3b02e00 c3b60018 00010000 bee0:
c393bf34 c393bef0 bf031508 bf0302c0 00000000 c3b60018 00000001 00000020
bf00: c3b60000 00000000 c393bf58 ffffdd48 c3b60000 c024ff00 c393bf58
0000001d bf20: c393a000 00000000 c393bf4c c393bf38 bf031590 bf0313c0
c3b60018 00000020 bf40: c393bf84 c393bf50 bf06c37c bf03157c 00000000
c393bef4 00000000 00000000 bf60: 00000001 00000000 00000000 c3ad7800
c3b4ac00 00000000 c393bfd4 c393bf88 bf80: bf031d80 bf06c158 00000000
c393bfa7 c3ad7a48 c3b4acd4 c3ad78d4 00000001 bfa0: 00000001 0202bf44
c0029814 c393a000 c3ad7800 bf031c68 00000000 00000000 bfc0: 00000000
00000000 c393bff4 c393bfd8 c004339c bf031c78 00000000 00000000 bfe0:
00000000 00000000 00000000 c393bff8 c003263c c0043350 426d0108 08003331
Backtrace: [<bf074494>] (mmc_davinci_dma_cb+0x0/0xb0 [davinci_mmc])
from [<c0027b1c>] (dma_ccerr_handler+0xdc/0x1c0) r4:0000001b
[<c0027a40>] (dma_ccerr_handler+0x0/0x1c0) from [<c00528a4>]
(handle_IRQ_event+0x44/0x84) [<c0052860>] (handle_IRQ_event+0x0/0x84)
from [<c0054464>] (handle_edge_irq+0xf4/0x17c) r7:c02512a4 r6:c3846340
r5:00000011 r4:c0251270 [<c0054370>] (handle_edge_irq+0x0/0x17c) from
[<c001e064>] (__exception_text_start+0x64/0x84) r8:c025ef08 r7:c3818d40
r6:c3859bd8 r5:00000000 r4:00000011 [<c001e000>] (__exception_text_start
+0x0/0x84) from [<c001e9f4>] (__irq_svc+0x34/0x60) Exception stack
(0xc393bcd0 to 0xc393bd18) bcc0:
c025ef08 00000000 ffffffff 60000013 bce0: 00000000 c3859a80 c3859bd8
c3818d40 c025ef08 00000001 c393a000 c393bd24 bd00: c393bd18 c393bd18
c01c9b0c c01c9b18 60000013 ffffffff r5:fec48000 r4:ffffffff
[<c01c9afc>] (_spin_unlock_irq+0x0/0x20) from [<c01c7ab4>] (schedule
+0x184/0x288) [<c01c7930>] (schedule+0x0/0x288) from [<c01c7da4>]
(schedule_timeout+0x20/0xc4) [<c01c7d84>] (schedule_timeout+0x0/0xc4)
from [<c01c7810>] (wait_for_common+0xe0/0x16c) r7:c393bdfc r6:7fffffff
r5:00000000 r4:c393be00 [<c01c7730>] (wait_for_common+0x0/0x16c) from
[<c01c792c>] (wait_for_completion+0x18/0x1c) [<c01c7914>]
(wait_for_completion+0x0/0x1c) from [<bf02c964>] (mmc_wait_for_req
+0x218/0x23c [mmc_core]) [<bf02c74c>] (mmc_wait_for_req+0x0/0x23c
[mmc_core]) from [<bf030428>] (mmc_io_rw_extended+0x178/0x1d8
[mmc_core]) r7:c3b4ac00 r6:00000001 r5:00000020 r4:c393be4c
[<bf0302b0>] (mmc_io_rw_extended+0x0/0x1d8 [mmc_core]) from
[<bf031508>] (sdio_io_rw_ext_helper+0x158/0x190 [mmc_core])
[<bf0313b0>] (sdio_io_rw_ext_helper+0x0/0x190 [mmc_core]) from
[<bf031590>] (sdio_readsb+0x24/0x2c [mmc_core]) [<bf03156c>]
(sdio_readsb+0x0/0x2c [mmc_core]) from [<bf06c37c>] (if_sdio_interrupt
+0x234/0x920 [libertas_sdio]) [<bf06c148>] (if_sdio_interrupt+0x0/0x920
[libertas_sdio]) from [<bf031d80>] (sdio_irq_thread+0x118/0x254
[mmc_core]) [<bf031c68>] (sdio_irq_thread+0x0/0x254 [mmc_core]) from
[<c004339c>] (kthread+0x5c/0x94) [<c0043340>] (kthread+0x0/0x94) from
[<c003263c>] (do_exit+0x0/0x6e0) r6:00000000 r5:00000000 r4:00000000
Code: e5930000 eb42f951 e5943004 e5942008 (e5933014) Kernel panic - not
syncing: Fatal exception in interrupt
------------------------------------------------------------
End kernel log

The crash is caused by the host->data member being NULL in the function
mmc_davinci_dma_cb() (drivers/mmc/host/mmc_davinci.c). The message you
see just before the crash:

   davinci_mmc davinci_mmc.0: host->data is NULL

is a trace I added in the function mmc_davinci_dma_cb() to confirm the
cause of the bug.

What would be the proper way to deal with that bug/condition?

Thank-you, Hugo V.

---------------
Hugo Villeneuve
www.hugovil.com
---------------

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to