Re: [linux-usb-devel] [PATCH] back out sysfs reference count change

Alan Stern
2004-04-01T03:48:37Z

On Thu, 1 Apr 2004, Benjamin Herrenschmidt wrote:

> > But that is impossible as has already been pointed out by Alan Stern.
> > If a module creates a kobject, how can the module_exit() function ever
> > be called if that kobject incremented the module reference count?
>
> I just had a loooong discussion with Rusty on that subject, it's
> indeed a nasty one. The problem is that the real solution is to
> change the module unload semantics. Regardless of the count, module
> exit should be called, and the actual unload (and eventually calling
> an additional module "release" function) then should only happen
> once the count is down to 0. That means that rmmod would block forever
> if the driver is opened, but that is just something that needs to be
> known.
>
> But that's not something we'll do for 2.6. For that to work, it also
> need various subsystem unregister_* (netdev etc...) functions to not
> error when the device is opened, just prevent new opens, and operate
> asynchronously (freeing data structures on kobject release) etc...

There was another lengthy discussion about this back in January. Read
these threads:

http://marc.theaimsgroup.com/?t=107487731800002&r=1&w=2
http://marc.theaimsgroup.com/?t=107509479200002&r=1&w=2

Lots of back-and-forth, but Linus was basically against the idea. For
now at least.

Alan Stern