On Wed, Aug 15, 2012 at 09:59:12PM +0200, Sebastian Andrzej Siewior wrote: > The "driver" struct for a gadget driver is named *_driver. On module > load, the gadget expects a UDC driver to be loaded and avaiable. If this > is not the case => -ENODEV and bye bye. That means that the gadget > driver is initialized immediately. The initialization process includes > calling ->bind() for the gadget driver. Therefore it is okay to put this > in __init. It will never be called again, we don't (yet) allow two > gadgets of the same kind to be ->bind() again. > > Commit 07a18bd716 ("usb gadget: don't save bind callback in struct > usb_composite_driver") move the ->bind() member from the struct to an > argument. > I'm reverting this and adding this exception. For g_zero we save around > 400bytes. I'm not having the conversion about how important it is to > save 400 bytes. I wait for configfs interface for the gadget subsystem. > This will remove the __init from the ->bind() because we will be able to > call ->bind() more than once and _after_ the init has been dropped. Could you use the __ref / __refdata annotation? This would be much cleaner than this hack in modpost. Sam -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html