Messages in this thread | | | From | Balaji Rao <> | Subject | Re: 2.6.25 sysdev API problem | Date | Sun, 9 Mar 2008 02:27:55 +0530 |
| |
On Sunday 09 March 2008 12:17:17 am Greg KH wrote: > On Sat, Mar 08, 2008 at 04:56:39PM +0100, Mikael Pettersson wrote: > > In kernels up to and including 2.6.24, it was possible to > > register-then-unregister a sysdev_class/sys_device pair > > multiple times. Starting with the 2.6.24-git1 kernel, doing > > so causes a warning > > > > kobject (f88e96c8): tried to init an initialized object, something is > > seriously wrong > > This is a warning only, I have a patch queued up to fix this. I've > included it below. > > > the second time the class/device pair is registered, followed > > soon thereafter by random BUG()s and a kernel panic. > > That's odd. I don't think that is related, but it might be. Can you > try the patch and let me know if it still happens? > > thanks, > > greg k-h > > > From: Balaji Rao <balajirrao@gmail.com> > Date: Thu, 6 Mar 2008 22:23:18 +0530 > Subject: kobjects: mark cleaned up kobjects as unitialized > To: gregkh@suse.de > Cc: <kvm-devel@lists.sourceforge.net>, linux-kernel@vger.kernel.org > Message-ID: <200803062223.18857.balajirrao@gmail.com> > Content-Disposition: inline > > > When I remove only the kvm-intel module without removing the kvm module > itself, I get an error saying that a kobject is trying to be > reinitialized. Its because of the fact that kvm reuses a kobject in > kvm_init when calling sysdev_register. > > This patch fixes kobject_cleanup by marking the kobject as uninitialized > when we cleanup to allow kobjects to be reused. > > Signed-off-by: Balaji Rao <balajirrao@gmail.com> > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> > > --- > lib/kobject.c | 3 +++ > 1 file changed, 3 insertions(+) > > --- a/lib/kobject.c > +++ b/lib/kobject.c > @@ -577,6 +577,9 @@ static void kobject_cleanup(struct kobje > pr_debug("kobject: '%s': free name\n", name); > kfree(name); > } > + > + /* Set the state to uninitialized */ > + kobj->state_initialized = 0; > } > > static void kobject_release(struct kref *kref) Hi Mikael,
The above patch causes slab corruptions as shown by this thread. http://lkml.org/lkml/2008/3/8/94
I've posted a test fix there. Please watch this thread for updates.
-- regards, balaji rao 3rd year, Dept. of Mechanical Engineering, National Institute of Technology, Karnataka
| |