On Wednesday 20 September 2006 7:18 pm, Aras Vaichas wrote: > David Brownell wrote: > David Brownell wrote: > > On Sunday 17 September 2006 9:59 pm, Aras Vaichas wrote: > >> I'm using an at91rm9200 with Linux 2.6.16. Under some unusual > >> circumstances, I > >> can create a failure. > > > > Can you reproduce this with 2.6.18-rc7? That newer driver code may > > be usable as a straight backport. > > I haven't tried. As the at91 kernel is (generally) very stable, I don't tend > to > do any kernel changes or upgrades any more. If I get a chance though, I might > download 2.6.18 and give it a try.
Or just update to its OHCI code ... there WERE some updates in the AT91 support there. > I recompiled with extra kernel info, but USB debugging doesn't seem to add > anything once the problem begins. I hope this provides more information. I'm > not much of a kernel hacker at this level of debugging but I can implement > suggestions. What I'd need to see would be the output of the "ohci_dump()" emitted after the OHCI_INTR_UE messages you showed. It should be in the syslog data; if the kernel wedged so you couldn't access that, then a very handy debug trick is "echo 8 > /proc/sysrq-trigger" to force KERN_DEBUG messages out to the serial console. > Jan 1 00:02:48 local2.debug in.ftpd[322]: command list > at91_ohci at91_ohci: OHCI Unrecoverable Error, disabled > at91_ohci at91_ohci: HC died; cleaning up > irq23: nobody cared > > Pid: 322, comm: in.ftpd > CPU: 0 > PC is at __do_softirq+0x44/0xd0 > LR is at irq_exit+0x44/0x58 > pc : [<c0038d2c>] lr : [<c0038eb4>] Not tainted > sp : c180bf44 ip : c180bf68 fp : c180bf64 > r10: c180bfb0 r9 : c020d7c0 r8 : c0215360 > r7 : 0000000a r6 : c180a000 r5 : c180a000 r4 : 00000002 > r3 : 20000013 r2 : 00000002 r1 : 00000001 r0 : 00000001 > Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user > Control: C000317F Table: 21030000 DAC: 00000015 > [<c001fc44>] (show_regs+0x0/0x4c) from [<c001ea54>] (report_bad_irq+0x6c/0xcc) > r4 = C180BEFC > [<c001e9e8>] (report_bad_irq+0x0/0xcc) from [<c001ed84>] > (do_level_IRQ+0x80/0xbc) > r5 = 00000017 r4 = C020DC6C > [<c001ed04>] (do_level_IRQ+0x0/0xbc) from [<c001ee14>] (asm_do_IRQ+0x54/0x13c) > r6 = 00000017 r5 = C180A000 r4 = FFFFFFFF > [<c001edc0>] (asm_do_IRQ+0x0/0x13c) from [<c001d998>] (__irq_svc+0x38/0x64) > [<c0038ce8>] (__do_softirq+0x0/0xd0) from [<c0038eb4>] (irq_exit+0x44/0x58) > r8 = 00000000 r7 = 00000001 r6 = 00000001 r5 = C180A000 > r4 = C180A000 > [<c0038e70>] (irq_exit+0x0/0x58) from [<c001eee4>] (asm_do_IRQ+0x124/0x13c) > r4 = FFFFFFFF > [<c001edc0>] (asm_do_IRQ+0x0/0x13c) from [<c001dbac>] (__irq_usr+0x4c/0xa0) > [<c0022ff0>] (dump_stack+0x0/0x14) from [<c001ea58>] > (report_bad_irq+0x70/0xcc) > [<c001e9e8>] (report_bad_irq+0x0/0xcc) from [<c001ed84>] > (do_level_IRQ+0x80/0xbc) > r5 = 00000017 r4 = C020DC6C > [<c001ed04>] (do_level_IRQ+0x0/0xbc) from [<c001ee14>] (asm_do_IRQ+0x54/0x13c) > r6 = 00000017 r5 = C180A000 r4 = FFFFFFFF > [<c001edc0>] (asm_do_IRQ+0x0/0x13c) from [<c001d998>] (__irq_svc+0x38/0x64) This does seem to show a nested IRQs ... it may eventually be useful to write the MIE bit of the OHCI intrdisable register before printing that "Unrecoverable Error" message, and clear "ints", so the cleanup works better. Right now there seem to be two problems: one is that the cleanup isn't acting as good as it should, the other is that it's needed in the first place. - Dave > [<c0038ce8>] (__do_softirq+0x0/0xd0) from [<c0038eb4>] (irq_exit+0x44/0x58) > r8 = 00000000 r7 = 00000001 r6 = 00000001 r5 = C180A000 > r4 = C180A000 > [<c0038e70>] (irq_exit+0x0/0x58) from [<c001eee4>] (asm_do_IRQ+0x124/0x13c) > r4 = FFFFFFFF > [<c001edc0>] (asm_do_IRQ+0x0/0x13c) from [<c001dbac>] (__irq_usr+0x4c/0xa0) > handlers: > [<c011aab8>] (usb_hcd_irq+0x0/0x84) > irq23: nobody cared ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel