Re: [RFC] embedded struct device Re: [patch] IDE driver model update

From: Kai Germaschewski (
Date: Tue Oct 08 2002 - 16:53:15 EST

On Tue, 8 Oct 2002, Alexander Viro wrote:

> That would be nice, if it worked that way. As it is we have
> driver allocates foo
> driver grabs a reference to foo->dev
> ....
> somebody else grabs/drops temporary references to foo->dev
> ....
> driver call put_device(&foo->dev)
> driver frees structures refered from foo.
> driver frees foo.
> _IF_ the last two steps were done by ->release(), your arguments would
> work. Actually they are done by driver right after the put_device() call.
> If you are willing to change that (== move all destruction into ->release()) -
> yeah, then embedded struct device will work. It's a hell of a work though.
> Comments?

Just a short note, since I have gotta run: The latter won't work very well
with modules, since obviously ->release() has to MOD_DEC_USE_COUNT, to
avoid having ->release() unloaded before it's executed. So for one, that's
a DoS making delaying module unload indefinitely by keep /driversfs/...
open, but even worse, rmmod will refuse to unload the module, since the
use count is > zero.

That's because normally pci_unregister_driver() or whatever is called in
cleanup_module(), but obviously to be able to call it the refcount has to
be zero already...


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:28 EST