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]