Re: subsystem_unregister() breakage in -mm

From: Cornelia Huck
Date: Wed Sep 26 2007 - 03:22:42 EST


On Tue, 25 Sep 2007 19:41:21 -0700,
Greg KH <greg@xxxxxxxxx> wrote:

> Ok, here's a patch that fixes this for me. It should go on top of the
> -mm tree. Let me know of this works or not.

Looks sane to me.

> In the end, we need to dynamically allocate these subsystems to properly
> fix this. In looking through the tree, there really isn't that many of
> them, so I'll try to knock that out later this week.

What they need at least is a dynamically allocated k_name. Same goes
for all those objects that use set_kset_name(), and there are quite a
few of those...

>
>
> thanks,
>
> greg k-h
>
> ---
> lib/kobject.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> --- a/lib/kobject.c
> +++ b/lib/kobject.c
> @@ -487,11 +487,11 @@ void kobject_cleanup(struct kobject * ko
> struct kobject * parent = kobj->parent;
>
> pr_debug("kobject %s: cleaning up\n",kobject_name(kobj));
> - kfree(kobj->k_name);
> - kobj->k_name = NULL;
> - if (t && t->release)
> + if (t && t->release) {
> t->release(kobj);
> - else
> + kfree(kobj->k_name);
> + kobj->k_name = NULL;
> + } else
> pr_debug("kobject '%s' does not have a release() function, "
> "if this is not a directory kobject, it is broken "
> "and must be fixed.\n",
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/