From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg KH Date: Wed, 10 Nov 2004 22:54:21 +0000 Subject: Re: [PATCH] kobject: fix double kobject_put in kobject_unregister() Message-Id: <20041110225421.GA16785@kroah.com> List-Id: References: <20041110141923.A13668@unix-os.sc.intel.com> In-Reply-To: <20041110141923.A13668@unix-os.sc.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Keshavamurthy Anil S Cc: Hotplug List , Linux Kernel On Wed, Nov 10, 2004 at 02:19:23PM -0800, Keshavamurthy Anil S wrote: > Hi Greg, > > This patch fixes the problem where in kobject resources were getting > freed when those kobject were still in use due to double kobject_put() > getting called in the kobject_unregister() code path. > > With out this patch kobject_unregister() will have some serious side effects. > > Please apply. > > signed-off-by: Anil S Keshavamurthy > > > linux-2.6.10-rc1-mm4-askeshav/lib/kobject.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletion(-) > > diff -puN lib/kobject.c~kobject_unregister_fix lib/kobject.c > --- linux-2.6.10-rc1-mm4/lib/kobject.c~kobject_unregister_fix 2004-11-10 13:43:42.243877455 -0800 > +++ linux-2.6.10-rc1-mm4-askeshav/lib/kobject.c 2004-11-10 13:46:30.788797265 -0800 > @@ -301,6 +301,8 @@ void kobject_del(struct kobject * kobj) > { > kobject_hotplug(kobj, KOBJ_REMOVE); > sysfs_remove_dir(kobj); > + > + /* unlink does kobject_put() for us */ > unlink(kobj); > } > > @@ -313,7 +315,6 @@ void kobject_unregister(struct kobject * > { > pr_debug("kobject %s: unregistering\n",kobject_name(kobj)); > kobject_del(kobj); > - kobject_put(kobj); > } No, this is wrong. Count the add and put in the sequence of: kobject_register() kobject_unregister() they are balanced. You mention you are seeing problems. Have a trace? Example code? thanks, gre k-h ------------------------------------------------------- This SF.Net email is sponsored by: Sybase ASE Linux Express Edition - download now for FREE LinuxWorld Reader's Choice Award Winner for best database on Linux. http://ads.osdn.com/?ad_idU88&alloc_id065&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel