On Wednesday 11 July 2007, Christoph wrote: > So, > > since yesterday I'm running this: > > drivers/usb/host/ehci-hcd.c:611 > /* complete the unlinking of some qh [4.15.2.3] */ > if (status & STS_IAA) { > if (ehci->reclaim) { > COUNT (ehci->stats.reclaim); > ehci->reclaim_ready = 1; > bh = 1; > } else { > printk(KERN_ERR "AUA: ehci reclaim NULL status: %u\n", status); > } > } > > > and got (once so far): > > ... > > no crash, all usb devices happy. > > Conclusion: > > - It's the bug. Anywhere else in the code reclaim_ready will only set > if ehci->reclaim is valid.
Actually, I think that patch only papers over the bug. The real bug being that the EHCI watchdog timer thing is too overloaded, and in this case it fired and did its thing too early ... before the STS_IAA interrupt had a chance to fire. We've seen some other problems in this area, but the last patch to update it needed to be reverted because it caused other problems. If you have a GIT tree handy: git show -p 26f953fd884ea4879585287917f855c63c6b2666 That is, the real fix is to rework the IAA watchdog handling and split it out from other timers used by the driver. Combining the all is an ugly hack which clearly has some problems. ... On the other hand, there's something to be said for papering over problems in some cases. Maybe ven this one... > - I spammed the wrong ML :) > > I still have some questions to the usb ppl: > * what is on status STS_IAA supposed to do? See the EHCI spec; IAA == Interrupt on Async Advance, and in this case it indicates that the unlink should now proceed. Except ... something moved forward with the unlink already, before it should have. > * should bh set anyway and call ehci_work? Not unless there's really work to be done. And there would have been work, if something hadn't done that work too early... > * what is [4.15.2.3] referring to? The EHCI 1.0 spec. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel