On Tue, 18 Jan 2005, David Brownell wrote: > This sounds like that deadlock we were getting a lot back when the > locking inside usbcore got completely overhauled. If there weren't > any messages from the HCD indicating that it saw the disconnect, > that could be more likely.
No, it's clear from the stack trace Matthias posted that the hang occurs in the middle of disconnect processing (disconnecting the root hub, in fact). > The way OHCI classically handled a cardbus unplug was detecting it > in the IRQ handler, marking the HC as dead, and cleaning up by > killing all pending URBs. That was how 2.4 did it, anyway. > > The cleanup logic -- hc_died() and friends -- isn't working lately. > That's in usbcore now, since it's logic that all HCDs need to have. > One symptom of the cleanup failing would be URBs never returning... This definitely could be the problem. Among other things, hc_died hasn't gotten much testing because it hardly ever gets called except for removable host controllers. > It's possible that some PCMCIA changes affected this too. I seem > to recall thinking that the cardbus/pcmcia logic should have been > notifying the OHCI code about the disconnect before the IRQ logic > saw it ... and I wouldn't swear that things would behave quite > right if someone _did_ fix that problem. (Though in that case > it'd be more equivalent to "rmmod ohci-hcd" with live devices.) > > I don't have working cardbus OHCI any more (sigh), so I couldn't > fix that even if I had time. Matthias, simply turning off hald ought to solve your problem, at least in the short term. Alan Stern ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
