On Wed, 6 Aug 2008, Simon Arlott wrote:
On 31/07/08 20:16, Alan Stern wrote:
>> > It's not entirely clear why usblp is blocking at all. Probably because
>> > it is waiting on the device semaphores for devices that are currently
>> > being probed -- the driver core won't allow two threads to probe the
>> > same device concurrently.
>> >> Ok - so there could be some big improvements to be had by making the hcd >> init happen as early as possible and the device initcalls later?
> > Maybe. Perhaps a better approach would be to make the device driver > initcalls before there are any devices for their probe routines to > block on.
What about this?
The Makefiles become a bit messy, but by moving things around I get the desired effect without splitting their initcalls.
Wouldn't it be much simpler, and less objectionable, to do what I
suggested earlier? That is, add a 5-second delay at the start of
hub_thread() in drivers/usb/core/hub.c. No messing with Makefiles, no
changes to the initcall scheduling.