Currently, the USB core is using module_init() for its initialization.
The means, if USB is compiled into the kernel, the point at which USB is
initialized depends on the link order in the top-level Makefile.

I had an report that this caused a kernel crash when an USB ISDN adapter
was initializing before the USB core, calling register_usb() (Though I
don't know where it exactly that did crash). The quick fix was to move
ISDN to the end of the list in the top-level Makefile.  However, the
correct fix IMO would be to get rid of the subtle link order dependencies
by making usb_init() an subsys_initcall(), as we already do for other bus
drivers, like pci, isapnp etc.

One further reason is that I would actually like to link drivers/net/irda
from within drivers/net, which would move it in front of USB, though, and
thus cause the same problem w.r.t USB IrDA dongles.

If nobody sees a problem with this change, I can come up with the
(trivial) patch.

--Kai



_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to