Messages in this thread | | | Date | Mon, 6 Mar 2006 17:57:35 -0800 | From | Greg KH <> | Subject | Re: [PATCH] EDAC: core EDAC support code |
| |
On Mon, Mar 06, 2006 at 08:45:59PM -0500, Dmitry Torokhov wrote: > 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).
See my previous apology about this :)
Anyway, the network stack does have a special lock for unloading modules while they are still "in use", but as long as Al was referring to your above sequence, I have no disagreement.
thanks,
greg k-h - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |