[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <200803090227.55230.balajirrao@gmail.com>
Date: Sun, 9 Mar 2008 02:27:55 +0530
From: Balaji Rao <balajirrao@...il.com>
To: Mikael Pettersson <mikpe@...uu.se>
Cc: Greg KH <gregkh@...e.de>, linux-kernel@...r.kernel.org
Subject: Re: 2.6.25 sysdev API problem
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@...il.com>
> Date: Thu, 6 Mar 2008 22:23:18 +0530
> Subject: kobjects: mark cleaned up kobjects as unitialized
> To: gregkh@...e.de
> Cc: <kvm-devel@...ts.sourceforge.net>, linux-kernel@...r.kernel.org
> Message-ID: <200803062223.18857.balajirrao@...il.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@...il.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...e.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists