Added -fno-inline and debug to the usb-code. Unable to handle kernel paging request for data at address 0xbdb398b8 Faulting instruction address: 0xc01e1c7c Oops: Kernel access of bad area, sig: 11 [#1] PREEMPT ASP8347E Modules linked in: NIP: c01e1c7c LR: c01e20d0 CTR: 00000008 REGS: c3ff7d90 TRAP: 0300 Not tainted (3.3.2) MSR: 00001032 <ME,IR,DR,RI> CR: 28082282 XER: 20000000 DAR: bdb398b8, DSISR: 22000000 TASK = c3a1a000[2236] 'cap' THREAD: c31da000 GPR00: 00000000 c3ff7e40 c3a1a000 bdb398ac c3139840 00000000 ffffffee ffffffb9 GPR08: ffffffb5 00000000 ffa9ffff c337f07c 28082224 1001a448 000000ec bfde0394 GPR16: c39cd0ec 00000000 c3a0d8ec 00000000 0000003b c337f000 c0377ad4 00000fff GPR24: 000001e0 00000000 000001d8 c0377afc 00000000 c3149780 c38958d8 c337f000 NIP [c01e1c7c] itd_complete+0x170/0x25c LR [c01e20d0] scan_periodic+0x144/0x494 Call Trace: [c3ff7e40] [c01e1be0] itd_complete+0xd4/0x25c (unreliable) [c3ff7e60] [c01e20d0] scan_periodic+0x144/0x494 [c3ff7ec0] [c01e248c] ehci_work+0x6c/0xc4 [c3ff7ed0] [c01e437c] ehci_irq+0x310/0x3d0 [c3ff7f70] [c01cbac8] usb_hcd_irq+0x44/0x6c [c3ff7f80] [c00597f8] handle_irq_event_percpu+0x74/0x1b0 [c3ff7fc0] [c0059988] handle_irq_event+0x54/0x90 [c3ff7fe0] [c005c120] handle_level_irq+0xa0/0x114 [c3ff7ff0] [c000dd10] call_handle_irq+0x18/0x28 [c31dbf10] [c0005784] do_IRQ+0xe0/0x138 [c31dbf40] [c000fb24] ret_from_except+0x0/0x14 --- Exception: 501 at 0xff20708 LR = 0xff20660 Instruction dump: 7f9fe214 54632036 381c0004 7c641a14 3863000c 7c00042c 741c7000 90abff88 40820094 2f800000 419c0084 5400853e <9383000c> 90030008 80640058 7c030214 ---[ end trace 247b516dec17a232 ]--- NIP lookup: (gdb) l *itd_complete+0x170 0x48bc is in itd_complete (drivers/usb/host/ehci-sched.c:1747). 1742 if (!(t & EHCI_ISOC_BABBLE)) { 1743 desc->actual_length = EHCI_ITD_LENGTH(t); 1744 urb->actual_length += desc->actual_length; 1745 } 1746 } else if (likely ((t & EHCI_ISOC_ACTIVE) == 0)) { 1747 desc->status = 0; 1748 desc->actual_length = EHCI_ITD_LENGTH(t); 1749 urb->actual_length += desc->actual_length; 1750 } else { 1751 /* URB was too late */ The last call trace address did not give me anything valuable and the kernel does not like to be built with -O0 (forced to use inlining on some parts?). :( Christian Melki > On Wed, 2 May 2012, Christian Melki wrote: > > > Hello. > > > > I can reliably reproduce an Oops on our Freescale 8347:e with a > > Logitech webcam. Strange part is that I can only do it using > > usb-audio, never with the same device using uvcvideo or usb-storage. > > It usually occurs within seconds of streaming from the USB-audio > > device. I have ported everything on our platfrom from our 2.6.32 > > kernel to 3.3.2. USB never gave me an issue on 2.6.32 and I can't > > figure out why it would die in ehci_work like this. > > It's probably not ehci_work() itself, but a subroutine call > that was inlined. > > > > > Unable to handle kernel paging request for data at address > 0xbe903df8 > > Faulting instruction address: 0xc01f45d4 > > Can you figure out what C statement corresponds to that address? > Perhaps by putting printk statements at strategic spots in > scan_async() and scan_periodic(). > > > Oops: Kernel access of bad area, sig: 11 [#1] PREEMPT > ASP8347E Modules > > linked in: > > NIP: c01f45d4 LR: c01f41b0 CTR: 00000008 > > REGS: c3ff7e30 TRAP: 0300 Not tainted (3.3.2) > > MSR: 00001032 <ME,IR,DR,RI> CR: 24482422 XER: 20000000 > > DAR: be903df8, DSISR: 22000000 > > TASK = c31996e0[2261] 'cap' THREAD: c31aa000 > > GPR00: 00000000 c3ff7ee0 c31996e0 c3a0438c c3b03d80 > c31b3ba0 00000000 > > 00000000 > > GPR08: be903dec 00000000 ffadffff c33b311c 44448484 > 1001a448 00000e68 > > c3a04328 > > GPR16: 00000000 01000000 00000e60 000001cd 000001cd > 00000730 c3a0438c > > c3a04390 > > GPR24: c3a0f730 00000000 c3b72de0 c3a09f30 00000000 > c3a042d8 00000000 > > c33b30a0 NIP [c01f45d4] ehci_work+0x8f4/0xac4 LR [c01f41b0] > > ehci_work+0x4d0/0xac4 Call Trace: > > [c3ff7ee0] [c01f41b0] ehci_work+0x4d0/0xac4 (unreliable) [c3ff7f40] > > [c01f4c18] ehci_irq+0x284/0x2b4 [c3ff7f70] [c01dde24] > > usb_hcd_irq+0x44/0x6c [c3ff7f80] [c005ba10] > > handle_irq_event_percpu+0x74/0x1b0 > > [c3ff7fc0] [c005bba0] handle_irq_event+0x54/0x90 [c3ff7fe0] > [c005e338] > > handle_level_irq+0xa0/0x114 [c3ff7ff0] [c000dd48] > > call_handle_irq+0x18/0x28 [c31abf10] [c0005784] do_IRQ+0xe0/0x138 > > [c31abf40] [c000fb64] ret_from_except+0x0/0x14 > > --- Exception: 501 at 0xff1565c > > LR = 0xff15658 > > Instruction dump: > > 7cff3a14 55082036 38070004 7d044214 3908000c 7c00042c 74077000 > > 932bff88 408200e0 2f800000 419c00cc 5400853e <90e8000c> 90080008 > > 81040058 7c080214 ---[ end trace c2cdbb4339c562c5 ]--- > > It's hard to tell what's wrong just from this. > > Alan Stern > > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html