projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9931fac
)
usb: musb: omap2430: fix the readiness check in omap_musb_mailbox
author
Aaro Koskinen
<aaro.koskinen@iki.fi>
Sat, 22 Dec 2012 23:24:51 +0000
(
01:24
+0200)
committer
Felipe Balbi
<balbi@ti.com>
Thu, 10 Jan 2013 12:13:37 +0000
(14:13 +0200)
The check in omap_musb_mailbox does not properly check if the module has
been fully initialized. The patch fixes that, and the kernel panic below:
$ modprobe twl4030-usb
[ 13.924743] twl4030_usb twl4030-usb.33: HW_CONDITIONS 0xe0/224; link 3
[ 13.940307] Unable to handle kernel NULL pointer dereference at virtual address
00000004
[ 13.948883] pgd =
ef27c000
[ 13.951751] [
00000004
] *pgd=
af256831
, *pte=
00000000
, *ppte=
00000000
[ 13.958374] Internal error: Oops: 17 [#1] ARM
[ 13.962921] Modules linked in: twl4030_usb(+) omap2430 libcomposite
[ 13.969543] CPU: 0 Not tainted (
3.8.0-rc1-n9xx-11758-ge37a37c
-dirty #6)
[ 13.976867] PC is at omap_musb_mailbox+0x18/0x54 [omap2430]
[ 13.982727] LR is at twl4030_usb_probe+0x240/0x354 [twl4030_usb]
[ 13.989013] pc : [<
bf013b6c
>] lr : [<
bf018958
>] psr:
60000013
[ 13.989013] sp :
ef273cf0
ip :
ef273d08
fp :
ef273d04
[ 14.001068] r10:
bf01b000
r9 :
bf0191d8
r8 :
00000001
[ 14.006530] r7 :
00000000
r6 :
ef140e10
r5 :
00000003
r4 :
00000000
[ 14.013397] r3 :
bf0142dc
r2 :
00000006
r1 :
00000000
r0 :
00000003
[ 14.020233] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 14.027740] Control:
10c5387d
Table:
af27c019
DAC:
00000015
[ 14.033752] Process modprobe (pid: 616, stack limit = 0xef272238)
[ 14.040161] Stack: (0xef273cf0 to 0xef274000)
[ 14.044708] 3ce0:
ef254310
00000001
ef273d34
ef273d08
[ 14.053314] 3d00:
bf018958
bf013b60
bf0190a4
ef254310
c0101550
c0c3a138
ef140e10
ef140e44
[ 14.061889] 3d20:
bf019150
00000001
ef273d44
ef273d38
c019890c
bf018724
ef273d64
ef273d48
[ 14.070495] 3d40:
c01974fc
c01988f8
ef140e10
bf019150
ef140e44
00000000
ef273d84
ef273d68
[ 14.079071] 3d60:
c0197728
c019748c
c0197694
00000000
bf019150
c0197694
ef273dac
ef273d88
[ 14.087677] 3d80:
c0195c38
c01976a0
ef03610c
ef143eb0
c0128954
ef254780
bf019150
c0b19548
[ 14.096252] 3da0:
ef273dbc
ef273db0
c0197098
c0195bf0
ef273dec
ef273dc0
c0196c98
c0197080
[ 14.104858] 3dc0:
bf0190a4
c0b27bc0
ef273dec
bf019150
bf019190
c0b27bc0
ef272000
00000001
[ 14.113433] 3de0:
ef273e14
ef273df0
c0197c18
c0196b30
ef273f48
bf019190
c0b27bc0
ef272000
[ 14.122039] 3e00:
00000001
bf01b000
ef273e24
ef273e18
c0198b28
c0197ba4
ef273e34
ef273e28
[ 14.130615] 3e20:
bf01b014
c0198ae8
ef273e8c
ef273e38
c0008918
bf01b00c
c004f730
c012ba1c
[ 14.139221] 3e40:
ef273e74
00000000
c00505b0
c004f72c
00000000
ef273e60
ef273f48
bf019190
[ 14.147796] 3e60:
00000001
ef273f48
bf019190
00000001
ef286340
00000001
bf0191d8
c0065414
[ 14.156402] 3e80:
ef273f44
ef273e90
c0067754
c00087fc
bf01919c
00007fff
c0064794
00000000
[ 14.164978] 3ea0:
ef273ecc
f0064000
00000001
ef272000
ef272000
00067f39
bf0192b0
bf01919c
[ 14.173583] 3ec0:
ef273f0c
ef273ed0
c00a6bf0
c00a53fc
ff000000
000000d2
c0067dc8
00000000
[ 14.182159] 3ee0:
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
[ 14.190765] 3f00:
00000000
00000000
00000000
00000000
00000000
00000000
ffffffff
00002968
[ 14.199340] 3f20:
00080878
00067f39
00000080
c000e2e8
ef272000
00000000
ef273fa4
ef273f48
[ 14.207946] 3f40:
c0067e54
c0066188
f0064000
00002968
f0065530
f0065463
f0065fb0
000012c4
[ 14.216522] 3f60:
00001664
00000000
00000000
00000000
00000014
00000015
0000000c
00000000
[ 14.225128] 3f80:
00000008
00000000
00000000
00080370
00080878
0007422c
00000000
ef273fa8
[ 14.233703] 3fa0:
c000e140
c0067d80
00080370
00080878
00080878
00002968
00067f39
00000000
[ 14.242309] 3fc0:
00080370
00080878
0007422c
00000080
00074030
00067f39
bec7aef8
00000000
[ 14.250885] 3fe0:
b6f05300
bec7ab68
0000e93c
b6f05310
60000010
00080878
af7fe821
af7fec21
[ 14.259460] Backtrace:
[ 14.262054] [<
bf013b54
>] (omap_musb_mailbox+0x0/0x54 [omap2430]) from [<
bf018958
>] (twl4030_usb_probe+0x240/0x354 [twl4030_usb])
[ 14.274200] r5:
00000001
r4:
ef254310
[ 14.277984] [<
bf018718
>] (twl4030_usb_probe+0x0/0x354 [twl4030_usb]) from [<
c019890c
>] (platform_drv_probe+0x20/0x24)
[ 14.289123] r8:
00000001
r7:
bf019150
r6:
ef140e44
r5:
ef140e10
r4:
c0c3a138
[ 14.296203] [<
c01988ec
>] (platform_drv_probe+0x0/0x24) from [<
c01974fc
>] (driver_probe_device+0x7c/0x214)
[ 14.306243] [<
c0197480
>] (driver_probe_device+0x0/0x214) from [<
c0197728
>] (__driver_attach+0x94/0x98)
[ 14.316009] r7:
00000000
r6:
ef140e44
r5:
bf019150
r4:
ef140e10
[ 14.321990] [<
c0197694
>] (__driver_attach+0x0/0x98) from [<
c0195c38
>] (bus_for_each_dev+0x54/0x88)
[ 14.331390] r6:
c0197694
r5:
bf019150
r4:
00000000
r3:
c0197694
[ 14.337371] [<
c0195be4
>] (bus_for_each_dev+0x0/0x88) from [<
c0197098
>] (driver_attach+0x24/0x28)
[ 14.346588] r6:
c0b19548
r5:
bf019150
r4:
ef254780
[ 14.351440] [<
c0197074
>] (driver_attach+0x0/0x28) from [<
c0196c98
>] (bus_add_driver+0x174/0x244)
[ 14.360687] [<
c0196b24
>] (bus_add_driver+0x0/0x244) from [<
c0197c18
>] (driver_register+0x80/0x154)
[ 14.370086] r8:
00000001
r7:
ef272000
r6:
c0b27bc0
r5:
bf019190
r4:
bf019150
[ 14.377136] [<
c0197b98
>] (driver_register+0x0/0x154) from [<
c0198b28
>] (platform_driver_register+0x4c/0x60)
[ 14.387390] [<
c0198adc
>] (platform_driver_register+0x0/0x60) from [<
bf01b014
>] (twl4030_usb_init+0x14/0x1c [twl4030_usb])
[ 14.398895] [<
bf01b000
>] (twl4030_usb_init+0x0/0x1c [twl4030_usb]) from [<
c0008918
>] (do_one_initcall+0x128/0x1a8)
[ 14.409790] [<
c00087f0
>] (do_one_initcall+0x0/0x1a8) from [<
c0067754
>] (load_module+0x15d8/0x1bf8)
[ 14.419189] [<
c006617c
>] (load_module+0x0/0x1bf8) from [<
c0067e54
>] (sys_init_module+0xe0/0xf4)
[ 14.428344] [<
c0067d74
>] (sys_init_module+0x0/0xf4) from [<
c000e140
>] (ret_fast_syscall+0x0/0x30)
[ 14.437652] r6:
0007422c
r5:
00080878
r4:
00080370
[ 14.442504] Code:
e24cb004
e59f3038
e1a05000
e593401c
(
e5940004
)
[ 14.448944] ---[ end trace
dbf47e5bc5ba03c2
]---
[ 14.453826] Kernel panic - not syncing: Fatal exception
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/omap2430.c
patch
|
blob
|
history
diff --git
a/drivers/usb/musb/omap2430.c
b/drivers/usb/musb/omap2430.c
index da00af46079469df59bc2babd1bf39f1a48b885a..c293dbeb8b24da01bc4188552b5103ecb93a5e31 100644
(file)
--- a/
drivers/usb/musb/omap2430.c
+++ b/
drivers/usb/musb/omap2430.c
@@
-255,11
+255,11
@@
static inline void omap2430_low_level_init(struct musb *musb)
void omap_musb_mailbox(enum omap_musb_vbus_id_status status)
{
struct omap2430_glue *glue = _glue;
- struct musb *musb = glue_to_musb(glue);
- glue->status = status;
- if (!musb) {
- dev_err(glue->dev, "musb core is not yet ready\n");
+ if (glue && glue_to_musb(glue)) {
+ glue->status = status;
+ } else {
+ pr_err("%s: musb core is not yet ready\n", __func__);
return;
}