On Wed, 6 Aug 2003, Soewono Effendi wrote: > As far as I understand, __init / __devinit is only relevant for device > driver (codes) that are statically linked. In the case of USB Device > Driver (not usbcore / usbhost ), one should actually not use > __init/__devinit, since USB probe can happen at any time, unless the > device is "static", i.e., not unplugable (I don't know if this word does > exist :) ).
>From Documentation/pci.txt: Please mark the initialization and cleanup functions where appropriate (the corresponding macros are defined in <linux/init.h>): __init Initialization code. Thrown away after the driver initializes. __exit Exit code. Ignored for non-modular drivers. __devinit Device initialization code. Identical to __init if the kernel is not compiled with CONFIG_HOTPLUG, normal function otherwise. __devexit The same for __exit. Tips: The module_init()/module_exit() functions (and all initialization functions called only from these) should be marked __init/exit. The struct pci_driver shouldn't be marked with any of these tags. The ID table array should be marked __devinitdata. The probe() and remove() functions (and all initialization functions called only from these) should be marked __devinit/exit. If you are sure the driver is not a hotplug driver then use only __init/exit __initdata/exitdata. Pointers to functions marked as __devexit must be created using __devexit_p(function_name). That will generate the function name or NULL if the __devexit function will be discarded. The upshot is that for USB, which is hotpluggable, __devinit and __devexit are useless. __init and __exit should be used for module initialization and removal routines, not for probing and disconnecting. Alan Stern ------------------------------------------------------- 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