Most recent kernel where this bug did not occur: Something between 2.6.10 and 2.6.12 Distribution: Gentoo Hardware Environment: x86, P4 Software Environment: Gentoo ~x86 (testing) Problem Description: after modprobe ehci-hcd the system does not respond any more Steps to reproduce: modprobe ehci-hcd See http://bugs.gentoo.org/show_bug.cgi?id=108919 for more information
*** This bug has been marked as a duplicate of 5428 ***
I was able to track down a similar problem on my computer. The entire system doesn't hang, only the modprobe process. The hang occurs in the following pathway: usb_add_hcd -> ehci_reset -> ehci_port_power -> ehci_hub_control As part of its startup, ehci_hub_control tries to acquire ehci->lock. However the spinlock has not yet been initialized, and so modprobe hangs. I don't know how David will want to fix this.
Hmm, I suspect the root cause is that the root hub init changes didn't involve adding a new init() method ... the original reset() method did that, but the new one assumes that's already been done. And reset() of course needs to be done without necessarily initializing HCD data structures. An add() should init() then later reset(). This would seem to explain another report I've gotten on the 2.6.15 queue; thanks Alan! (I'm actually surprised that OHCI never sees this problem... the reason is that it's got a stupid reset method, which ignores the failures that can happen when reset-at-runtime reinitializes things.)
More info on this. This isn't an issue with 2.6.14-rc4 since the first thing done by ehci_hc_reset() is to initialize that spinlock. But it's an issue with the 2.6.15 prepatches.
I disabled "Enable legacy USB support" in kernel and after that it works. It would be better of course if that would not cause a system freeze but at least I know how to fix this problem now.
On Mon, Oct 17, 2005 at 10:36:55AM -0700, bugme-daemon@kernel-bugs.osdl.org wrote: > I disabled "Enable legacy USB support" in kernel You mean, in the BIOS, not kernel, right?
In the BIOS of course. Stupid me.
Great, glad we have a fix.