Re: subsystem_unregister() breakage in -mm

From: Greg KH
Date: Tue Sep 25 2007 - 18:53:49 EST


On Wed, Sep 26, 2007 at 12:27:14AM +0200, Miklos Szeredi wrote:
> I get "BUG: failure at mm/slab.c:591/page_get_cache()!" in latest -mm
> when removing the fuse module.
>
> This patch titled "kobject: remove the static array for the name"
> looks like it's responsible. Reverting it cures the problem.
>
> The root of the problem seems to be, that decl_subsys() initializes
> k_name with a string constant. Then subsystem_unregister() will put
> the kobject, which will free the k_name.
>
> So, what's the right way to deal with this?

How is the static kobject created by decl_subsys() getting it's release
function called when it is never really "released" as it is a static
kobject?

The "correct" way to fix this is to dynamically create the subsystem
kobject, and is what I am working toward accomplishing. But I didn't
think it was necessary just yet.

Let me go dig some more...

thanks,

greg k-h
-
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/