On Wed, Aug 06, 2003 at 03:28:01PM +0200, Oliver Neukum wrote:
> so it seems it doesn't hurt as USB is always hotpluggable. But I fail
> to see how it might help.

Not true, you can run USB devices just fine with CONFIG_HOTPLUG
disabled.

CONFIG_HOTPLUG only causes the following to happen:
        - anything marked __devinit or __devinitdata will not be thrown
          into the __init or __initdata section of the linker (and will
          not be thrown away when the init sequence is over.)
        - /sbin/hotplug will be called when a new device is found or
          removed from the system.


So USB drivers can use __init just fine in their module_init() section
if they want to.

But you CAN NOT mark the usb_device_id table as __devinitdata or
__initdata as that will be touched later on if a new USB device is
added, or if a new usb module is loaded.

This is why I had to go through and remove all of those instances in the
kernel tree a while ago, and why I just had to do it all for PCI
drivers, and why the PnP drivers were just changed.

So in the end, for USB drivers, __devinit* probably should not be used,
unless you _really_ know what you are doing (for PCI drivers it can be
ok at times, as pci hotplug and cardbus systems are not always used.)

Hope this helps,

greg k-h


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to