Messages in this thread | | | Date | Tue, 7 Mar 2006 09:04:01 -0800 | From | Greg KH <> | Subject | Re: [PATCH] EDAC: core EDAC support code |
| |
On Tue, Mar 07, 2006 at 08:47:44AM -0800, Dave Peterson wrote: > On Monday 06 March 2006 13:32, 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. > > Ok, how does this sound: > > - Modify EDAC so it uses kmalloc() to create the kobject. > - Eliminate edac_memctrl_master_release(). Instead, use kfree() as > the release method for the kobject. Here, it's important to use a > function -outside- of EDAC as the release method since the core > EDAC module may have been unloaded by the time the release method > is called.
No, if this happens then you are using the kobject incorrectly. How could it be held if your module is unloaded? Don't you have the module reference counting logic correct?
> - Make similar modifications to the other places in EDAC where > kobjects are used.
Yes.
> At least this will keep the module unload operation from blocking > in the module cleanup function due to a nonzero kobject reference > count. I'm going to be away from my keyboard for most of the rest of > today. However, if there is general agreement that this is a > reasonable way to proceed, I'll make a patch that implements this > tomorrow.
It's a good start :)
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/
| |