Re: [PATCH 3/4] modules: proper cleanup of kobject without CONFIG_SYSFS

From: Rusty Russell
Date: Thu May 22 2008 - 05:28:11 EST


On Tuesday 20 May 2008 19:59:48 Denis V. Lunev wrote:
> kobject: '<NULL>' (ffffffffa0104050): is not initialized, yet kobject_put()

Thanks Denis.

This patch masks a deeper problem; looks like you can't load any modules with
CONFIG_SYSFS=n:

kernel/module.c:
int mod_sysfs_init(struct module *mod)
{
int err;
struct kobject *kobj;

if (!module_sysfs_initialized) {
printk(KERN_ERR "%s: module sysfs not initialized\n",
mod->name);
err = -EINVAL;
goto out;
}

AFAICT, module_sysfs_initialized is not ever set if !CONFIG_SYSFS.

I can't see the point of module_sysfs_initialized. It was introduced by Greg
in commit 823bccfc ("remove "struct subsystem" as it is no longer needed").

Greg, what were you trying to do here? Modules can't be loaded before
param_sysfs_init(): are you trying to handle the case where the
kset_create_and_add() fails?

Thanks,
Rusty.
--
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/