Re: [PATCH] EDAC: core EDAC support code

Dmitry Torokhov
2006-03-07T01:46:05Z

On Monday 06 March 2006 16:53, Greg KH wrote:
> 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.
>

Not so:

[root@core ~]# rmmod psmouse < /sys/bus/serio/devices/serio0/rate
ERROR: Module psmouse is in use
[root@core ~]# rmmod psmouse
[root@core ~]# modprobe psmouse
[root@core ~]#

It would be nice if more subsystem could handle this, preferably without
"Waiting for blah to become free" messages (as in W1).

--
Dmitry