beagleboard / kernel

Kernel for the beagleboard.org boards
174 stars 159 forks source link

3.8 Crash on reboot #26

Closed 17twenty closed 11 years ago

17twenty commented 11 years ago

The 3.8 version seems to have a bug that is triggered on a reboot (but not a shutdown)

I've had a cursory look and the function dsps_musb_exit() in drivers/usb/musb/musb_dsps.c:

static int dsps_musb_exit(struct musb *musb)
{
    struct device *dev = musb->controller;
    struct platform_device *pdev = to_platform_device(dev);
    struct dsps_glue *glue = dev_get_drvdata(dev->parent);

    del_timer_sync(&glue->timer[pdev->id]);

    /* Shutdown the on-chip PHY and its PLL. */
    musb_dsps_phy_control(glue, pdev->id, 0);

    /* NOP driver needs change if supporting dual instance */
    /* **Commenting out this line makes it not crash** */   
    usb_put_phy(musb->xceiv);
    usb_nop_xceiv_unregister();

    return 0;
}

Stacktrace follows:

root@beaglebone:~# reboot

Broadcast message from root@beaglebone (ttyO0) (Tue Feb 19 00:51:11 2013):
The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
INIT: Sending processes the KStopping syslogd/klogd: stopped syslogd (pid 529)
stopped klogd (pid 531)
done
Deconfiguring network interfaces... ifdown: interface eth0 not configured
done.
Sending all processes the TERM signal...
Sending all processes the KILL signal...
Unmounting remote filesystems...
Deactivating swap...
Unmounting local filesystems...
[  227.484942] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
Rebooting... [  229.678720] (NULL device *): gadget not registered.
[  229.685277] Unable to handle kernel paging request at virtual address 7665645
7
[  229.692965] pgd = cf404000
[  229.695887] [76656457] *pgd=00000000
[  229.699749] Internal error: Oops: 5 [#1] SMP ARM
[  229.704614] Modules linked in:
[  229.707857] CPU: 0    Not tainted  (3.8.0-00360-g1eb76fa #1)
[  229.713836] PC is at kobject_put+0xc/0x74
[  229.718083] LR is at dsps_musb_exit+0x44/0x50
[  229.722682] pc : [<c0286538>]    lr : [<c03b435c>]    psr: 20000013
[  229.722682] sp : cf415e30  ip : cf235250  fp : 00000001
[  229.734750] r10: 00000000  r9 : cf414000  r8 : cf165e44
[  229.740252] r7 : c082799c  r6 : cf104180  r5 : cf234100  r4 : 76656437
[  229.747120] r3 : f9e10620  r2 : 00000000  r1 : 00000000  r0 : 76656437
[  229.753991] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  229.761499] Control: 10c5387d  Table: 8f404019  DAC: 00000015
[  229.767547] Process reboot (pid: 569, stack limit = 0xcf414240)
[  229.773777] Stack: (0xcf415e30 to 0xcf416000)
[  229.778377] 5e20:                                     76656437 00000000 cf165
e10 c03b435c
[  229.786995] 5e40: cf234100 60000013 c089ade0 c03ad798 c03ad718 cf165e1c cf165
e10 c0312e08
[  229.795610] 5e60: c0312df4 c0310208 00000000 00000000 c07f0630 00000002 c000daa4 c004e27c
[  229.804227] 5e80: 01234567 c004e298 01234567 c004e434 cf415f00 fffffffe cf16f500 cf48b000
[  229.881758] 5fa0: 00000058 c000d920 00000001 00000003 fee1dead 28121969 01234567 00000002
[  229.890371] 5fc0: 00000001 00000003 00000000 00000058 000125d8 00000000 00000000 00000001
[  229.898985] 5fe0: 0001250c be88ac94 00008f90 45e66480 20000010 fee1dead 00000000 00000000
[  229.907624] [<c0286538>] (kobject_put+0xc/0x74) from [<c03b435c>] (dsps_musb_exit+0x44/0x50)
[  229.916526] [<c03b435c>] (dsps_musb_exit+0x44/0x50) from [<c03ad798>] (musb_shutdown+0x80/0x90)
[  229.925701] [<c03ad798>] (musb_shutdown+0x80/0x90) from [<c0312e08>] (platform_drv_shutdown+0x14/0x18)
[  229.935526] [<c0312e08>] (platform_drv_shutdown+0x14/0x18) from [<c0310208>] (device_shutdown+0x110/0x174)
[  229.945721] [<c0310208>] (device_shutdown+0x110/0x174) from [<c004e27c>] (kernel_restart_prepare+0x2c/0x3c)
[  229.955991] [<c004e27c>] (kernel_restart_prepare+0x2c/0x3c) from [<c004e298>] (kernel_restart+0xc/0x4c)
[  229.965892] [<c004e298>] (kernel_restart+0xc/0x4c) from [<c004e434>] (sys_reboot+0x154/0x1b8)
[  229.974889] [<c004e434>] (sys_reboot+0x154/0x1b8) from [<c000d920>] (ret_fast_syscall+0x0/0x30)
[  229.984054] Code: c069a545 e92d4013 e2504000 0a000015 (e5d43020)
[  229.990651] ---[ end trace 329b79ba8e6fef82 ]---
/etc/rc6.d/S90reboot: line 15:   569 Segmentation fault      reboot -d -f
cmicali commented 11 years ago

I'm seeing the same issue, but the fix @17twenty provided did solve the problem for me.

koenkooi commented 11 years ago

fixed in f599fcdc269b3faa5ecf0746c331e63e2f9e0a38