David Brownell writes:
> In addition to the init ordering issue with the initial
> patch ("usbcore" didn't get initted first),

My initial patch already took care of that - it didn't cater for the case
when there were many copies of input.o being linked in.

> several of
> the drivers should no longer be getting explicit init
> calls ... aren't "dabusb", "dsbr100", and "plusb" all
> set with init sections even in static configs?  If so,
> then the "usb-core.c" file should delete some calls.

I've just looked at plusb - its init function is marked as __init, but
that's not enough, so I'll include some "pre-packaged" instructions.
Appologies in advance if this is teaching you guys how to suck eggs...

To convert the remaining drivers (which doesn't have to be done at this
time, and since I don't have any working USB setups I'm not likely to
attempt myself), you need to make the init and exit functions static, ie
plusb_init and plusb_cleanup.

Then, remove references to those in the other files, and get rid of the
#ifdef MODULE and #endif lines.

Also, replace init_module and cleanup_module calls. with:

module_init(plusb_init);
module_exit(plusb_cleanup);

Now you're ready for it to be called via the initcalls, or by insmod.
No need for nasty ifdefs.
   _____
  |_____| ------------------------------------------------- ---+---+-
  |   |         Russell King        [EMAIL PROTECTED]      --- ---
  | | | | http://www.arm.linux.org.uk/personal/aboutme.html   /  /  |
  | +-+-+                                                     --- -+-
  /   |               THE developer of ARM Linux              |+| /|\
 /  | | |                                                     ---  |
    +-+-+ -------------------------------------------------  /\\\  |

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to