Oops on linux-next during reboot, possibly related to "mmc: core: Handle card shutdown from mmc_bus"
Hi,
On next-20130628 I get the following Oops during reboot:
[ 89.814921] Unable to handle kernel NULL pointer dereference at virtual address 0000004c [ 89.824208] pgd = ecd54000 [ 89.827276] [0000004c] *pgd=00000000 [ 89.831340] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[<c040b244>] (mmc_bus_shutdown+0x24/0x70) from [<c032aa6c>] (device_shutdown+0x44/0x19c) [<c032aa6c>] (device_shutdown+0x44/0x19c) from [<c0054508>] (kernel_restart_prepare+0x44/0x48) [<c0054508>] (kernel_restart_prepare+0x44/0x48) from [<c0054528>] (kernel_restart+0x1c/0x70) [<c0054528>] (kernel_restart+0x1c/0x70) from [<c0054704>] (SyS_reboot+0x168/0x1f0) [<c0054704>] (SyS_reboot+0x168/0x1f0) from [<c000ed00>] (ret_fast_syscall+0x0/0x30)
The corresponding line in mmc_bus_shutdown is "drv->shutdown(card);" and 'drv' seems indeed to be NULL.
Hi Tuomas,
It seems to produce this problem when wifi is enabled. In case of WiFi, used the sdio_bus_register in sdio_bus.c.
Then i think right that "shutdown callback function" is existed in WiFi driver. And need to use the sdio_bus_shutdown, not mmc_bus_shutdown.
sdio is used sdio_driver and mmc/sd is used mmc_driver. I think that didnt consider this point.
Maybe need to check whether drv is NULL or not.
If i misunderstood something, let me know.
Best Regards,
Jaehoon Chung
Quoted 21 lines · Tuomas Tynkkynen
Hi,
On next-20130628 I get the following Oops during reboot:
[ 89.814921] Unable to handle kernel NULL pointer dereference at virtual address 0000004c [ 89.824208] pgd = ecd54000 [ 89.827276] [0000004c] *pgd=00000000 [ 89.831340] Internal error: Oops: 5 [#1] PREEMPT SMP ARM[<
c040b244>] (mmc_bus_shutdown+0x24/0x70) from [<c032aa6c>] (device_shutdown+0x44/0x19c) [<c032aa6c>] (device_shutdown+0x44/0x19c) from [<c0054508>] (kernel_restart_prepare+0x44/0x48) [<c0054508>] (kernel_restart_prepare+0x44/0x48) from [<c0054528>] (kernel_restart+0x1c/0x70) [<c0054528>] (kernel_restart+0x1c/0x70) from [<c0054704>] (SyS_reboot+0x168/0x1f0) [<c0054704>] (SyS_reboot+0x168/0x1f0) from [<c000ed00>] (ret_fast_syscall+0x0/0x30)The corresponding line in
mmc_bus_shutdownis "drv->shutdown(card);" and 'drv' seems indeed to be NULL.
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 8 lines · Tuomas Tynkkynen
Hi,
On next-20130628 I get the following Oops during reboot:
[ 89.814921] Unable to handle kernel NULL pointer dereference at virtual address 0000004c [ 89.824208] pgd = ecd54000 [ 89.827276] [0000004c] *pgd=00000000 [ 89.831340] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Quoted 8 lines
[<
c040b244>] (mmc_bus_shutdown+0x24/0x70) from [<c032aa6c>] (device_shutdown+0x44/0x19c) [<c032aa6c>] (device_shutdown+0x44/0x19c) from [<c0054508>] (kernel_restart_prepare+0x44/0x48) [<c0054508>] (kernel_restart_prepare+0x44/0x48) from [<c0054528>] (kernel_restart+0x1c/0x70) [<c0054528>] (kernel_restart+0x1c/0x70) from [<c0054704>] (SyS_reboot+0x168/0x1f0) [<c0054704>] (SyS_reboot+0x168/0x1f0) from [<c000ed00>] (ret_fast_syscall+0x0/0x30)The corresponding line in
mmc_bus_shutdownis "drv->shutdown(card);" and 'drv' seems indeed to be NULL.
Hi Tuomas,
Your observations is correct, thanks for reporting and testing.
I have just sent a fixup patch that will solve the issue.
Kind regards
Ulf Hansson