[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20071008.201653.43030513.davem@davemloft.net>
Date: Mon, 08 Oct 2007 20:16:53 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: greg@...ah.com
Cc: david-b@...bell.net, linux-usb-users@...ts.sourceforge.net,
linux-kernel@...r.kernel.org
Subject: Re: OHCI root_port_reset() deadly loop...
From: Greg KH <greg@...ah.com>
Date: Mon, 8 Oct 2007 20:10:49 -0700
> Yes it does, I'm seeing reports from some hardware companies of the very
> same thing. If you serialize and load the ehci driver first, and then
> the ohci driver, that should fix the problem.
>
> Does that also work for you? Or are these drivers built into the
> kernel?
As coicidence would have it I finally found a recipe for triggering
the issue, and it ties into what you're talking about here.
It happens only if I make sure OHCI gets loaded first and then EHCI
right afterwards.
It seems that indeed it is important for EHCI to get loaded first,
and in-kernel this is ensured by the link ordering.
However, when both OHCI and EHCI are built as modules (or, similarly
I guess, OHCI is built-in and EHCI is modular) there appears to be
nothing in userspace which makes sure EHCI gets loaded first.
When this triggers, in OHCI's root_port_reset(), the port status
register reads 0x111 in that inner-loop and the value never changes.
It stays like this forever.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists