Re: Unregistering interfaces

From: Greg KH
Date: Mon Mar 29 2004 - 19:04:53 EST


On Mon, Mar 29, 2004 at 03:31:17PM -0800, Andrew Morton wrote:
> Greg KH <greg@xxxxxxxxx> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/