Re: Unregistering interfaces

Greg KH
2004-03-30T00:02:03Z

On Mon, Mar 29, 2004 at 03:31:17PM -0800, Andrew Morton wrote:
> Greg KH <greg@kroah.com> wrote:
> >
> > > The module should remain in memory, "unhashed", until the final kobject
> > > reference falls to zero. Destruction of that kobject causes the refcount
> > > on the module to fall to zero which causes the entire module to be
> > > released.
> > >
> > > (hmm, the existence of a kobject doesn't appear to contribute to its
> > > module's refcount. Why not?)
> >
> > It does, if a file for that kobject is opened. In this case, there was
> > no file opened, so the module refcount isn't incremented.
>
> hm, surprised. Shouldn't the existence of a kobject contribute to its
> module's refcount?

No, a kobject by itself knows nothing about a module. Only the
attribute files do (and they are the things that contain the struct
module *), as they are what user space can grab references to.

I never thought that the kobject would care, as it is only a directory,
and I didn't think that anything could grab directory references on
their own. But then Maneesh's patch wasn't in the kernel at that time
:)

thanks,

greg k-h