Re: [PATCH] EDAC: core EDAC support code

Greg KH
2006-03-06T21:54:00Z

On Mon, Mar 06, 2006 at 09:32:03PM +0000, Al Viro wrote:
> On Mon, Mar 06, 2006 at 01:01:37PM -0800, Dave Peterson wrote:
> > Regarding the above problem with the kobject reference count, this
> > was recently fixed in the -mm tree (see edac-kobject-sysfs-fixes.patch
> > in 2.6.16-rc5-mm2). The fix I implemented was to add a call to
> > complete() in edac_memctrl_master_release() and then have the module
> > cleanup code wait for the completion. I think there were a few other
> > instances of this type of problem that I also fixed in the
> > above-mentioned patch.
>
> This is not a fix, this is a goddamn deadlock.
> rmmod your_turd </sys/spew/from/your_turd
> and there you go. rmmod can _NOT_ wait for sysfs references to go away.

To be fair, the only part of the kernel that supports the above process,
is the network stack. And they implemented a special kind of lock to
handle just this kind of thing.

That is not something that I want the rest of the kernel to have to use.
If your code blocks when doing the above thing, that's fine with me.

Note, you better have the module owner reference right for the above to
not oops the kernel, deadlock is fine. There is no rule that we _have_
to allow rmmod to always succeed.

thanks,

greg k-h