Cornelia Huck wrote: > On Fri, 30 Mar 2007 22:19:52 +0900, > Tejun Heo <[EMAIL PROTECTED]> wrote: > >>> Shouldn't getting/putting the module refcount be solely done in >>> kobject.c? Grab the module reference when the kobject is created and >>> release the module reference in kobject_cleanup() after the release >>> function has been called. This doesn't make kobject_get() heavier, and >>> it ensures we don't delete the module until after the last kobject it is >>> supposed to clean up has been released. >> If we do that, we wouldn't be able to unload a module if there is any >> kobject referencing it even when the node has no openers, so no easy way >> out there. :-( > > But we must not unload the module when there is still a kobject around > referencing a release function in the module, or we will oops if the > kobject is finally released. If needed, the module must clean up its > kobjects in its exit function.
It's a little bit more convoluted than that. Module reference count of zero doesn't indicate that there is no one referencing the module. It just means that the module can be unloaded. ie. There still can be any number of kobjects with release function backed by the module but as long as all of them can be deleted and released by module exit function, the module is unloadable at that point. IOW, module reference count does not count number of objects depending on the module. It counts the number of active usages of those objects. -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html