On Mon, Sep 6, 2010 at 7:48 AM, Richard Sharpe <realrichardsharpe@xxxxxxxxx> wrote: >> I think what you need is root_device_create() which will allocate a >> device structure and assign ->release() that is implemented outside of >> your module. This way your module may be unloaded even if there are >> outstanding references to tcm_loop_primary device. > > I am embarrassed to admit that scst_local (or whatever its new name > will be) probably has the same fault, as it too was based on > scsi_debug ... > > However, I did a search of the 2.6.24.1 source tree and could not find Typo alert: 2.6.34.1! > any instances of root_device_create() being called nor defined. I just > double and triple checked the spelling. > > Ahhh, I see why. A slightly different search suggests that it is > root_device_register(const char *name). > > From include/linux/device.h: > > static inline struct device *root_device_register(const char *name) > { > return __root_device_register(name, THIS_MODULE); > } > > Was that the one you were thinking of? > >> The rest of devices you create needs to increment module counter or >> otherwise ensure that their methods stay available until they are >> cleaned up (->release() is called). > > OK, I need to check out how this is done. > >> Hope this helps. > > Sure does. > > -- > Regards, > Richard Sharpe > -- Regards, Richard Sharpe -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html