* [PATCH] class: Free the class private data in class_unregister
@ 2010-02-10 11:35 Laurent Pinchart
2010-02-10 12:32 ` [PATCH v2] class: Free the class private data in class_release Laurent Pinchart
0 siblings, 1 reply; 5+ messages in thread
From: Laurent Pinchart @ 2010-02-10 11:35 UTC (permalink / raw)
To: gregkh; +Cc: kay.sievers, linux-kernel, artem.bityutskiy
Fix a memory leak by freeing the memory allocated in __class_register
for the class private data.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
drivers/base/class.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 161746d..a9449b3 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -200,6 +200,7 @@ void class_unregister(struct class *cls)
pr_debug("device class '%s': unregistering\n", cls->name);
remove_class_attrs(cls);
kset_unregister(&cls->p->class_subsys);
+ kfree(cls->p);
}
static void class_create_release(struct class *cls)
--
1.6.4.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2] class: Free the class private data in class_release
2010-02-10 11:35 [PATCH] class: Free the class private data in class_unregister Laurent Pinchart
@ 2010-02-10 12:32 ` Laurent Pinchart
2010-02-10 16:05 ` Artem Bityutskiy
2010-02-12 7:16 ` Artem Bityutskiy
0 siblings, 2 replies; 5+ messages in thread
From: Laurent Pinchart @ 2010-02-10 12:32 UTC (permalink / raw)
To: gregkh; +Cc: kay.sievers, linux-kernel, artem.bityutskiy
Fix a memory leak by freeing the memory allocated in __class_register
for the class private data.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
drivers/base/class.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 161746d..6e2c3b0 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -59,6 +59,8 @@ static void class_release(struct kobject *kobj)
else
pr_debug("class '%s' does not have a release() function, "
"be careful\n", class->name);
+
+ kfree(cp);
}
static struct sysfs_ops class_sysfs_ops = {
--
1.6.4.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] class: Free the class private data in class_release
2010-02-10 12:32 ` [PATCH v2] class: Free the class private data in class_release Laurent Pinchart
@ 2010-02-10 16:05 ` Artem Bityutskiy
2010-02-12 7:16 ` Artem Bityutskiy
1 sibling, 0 replies; 5+ messages in thread
From: Artem Bityutskiy @ 2010-02-10 16:05 UTC (permalink / raw)
To: ext Laurent Pinchart; +Cc: gregkh, kay.sievers, linux-kernel
On Wed, 2010-02-10 at 13:32 +0100, ext Laurent Pinchart wrote:
> Fix a memory leak by freeing the memory allocated in __class_register
> for the class private data.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Thanks for finding this. For reference, this was spotted with help of
the great kmemleak tool.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] class: Free the class private data in class_release
2010-02-10 12:32 ` [PATCH v2] class: Free the class private data in class_release Laurent Pinchart
2010-02-10 16:05 ` Artem Bityutskiy
@ 2010-02-12 7:16 ` Artem Bityutskiy
2010-02-12 15:19 ` Greg KH
1 sibling, 1 reply; 5+ messages in thread
From: Artem Bityutskiy @ 2010-02-12 7:16 UTC (permalink / raw)
To: Laurent Pinchart, Greg Kroah-Hartman
Cc: kay.sievers, linux-kernel, Andrew Morton
On Wed, 2010-02-10 at 13:32 +0100, Laurent Pinchart wrote:
> Fix a memory leak by freeing the memory allocated in __class_register
> for the class private data.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/base/class.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/base/class.c b/drivers/base/class.c
> index 161746d..6e2c3b0 100644
> --- a/drivers/base/class.c
> +++ b/drivers/base/class.c
> @@ -59,6 +59,8 @@ static void class_release(struct kobject *kobj)
> else
> pr_debug("class '%s' does not have a release() function, "
> "be careful\n", class->name);
> +
> + kfree(cp);
> }
>
> static struct sysfs_ops class_sysfs_ops = {
This looks like 2.6.33 material for me. CC-ing Andrew.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] class: Free the class private data in class_release
2010-02-12 7:16 ` Artem Bityutskiy
@ 2010-02-12 15:19 ` Greg KH
0 siblings, 0 replies; 5+ messages in thread
From: Greg KH @ 2010-02-12 15:19 UTC (permalink / raw)
To: Artem Bityutskiy
Cc: Laurent Pinchart, kay.sievers, linux-kernel, Andrew Morton
On Fri, Feb 12, 2010 at 09:16:58AM +0200, Artem Bityutskiy wrote:
> On Wed, 2010-02-10 at 13:32 +0100, Laurent Pinchart wrote:
> > Fix a memory leak by freeing the memory allocated in __class_register
> > for the class private data.
> >
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> > drivers/base/class.c | 2 ++
> > 1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/base/class.c b/drivers/base/class.c
> > index 161746d..6e2c3b0 100644
> > --- a/drivers/base/class.c
> > +++ b/drivers/base/class.c
> > @@ -59,6 +59,8 @@ static void class_release(struct kobject *kobj)
> > else
> > pr_debug("class '%s' does not have a release() function, "
> > "be careful\n", class->name);
> > +
> > + kfree(cp);
> > }
> >
> > static struct sysfs_ops class_sysfs_ops = {
>
> This looks like 2.6.33 material for me. CC-ing Andrew.
Heh, I can handle .33 stuff just fine :)
thanks,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-02-12 15:36 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-10 11:35 [PATCH] class: Free the class private data in class_unregister Laurent Pinchart
2010-02-10 12:32 ` [PATCH v2] class: Free the class private data in class_release Laurent Pinchart
2010-02-10 16:05 ` Artem Bityutskiy
2010-02-12 7:16 ` Artem Bityutskiy
2010-02-12 15:19 ` Greg KH
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.