[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1203426602.4240.10.camel@lov.site>
Date: Tue, 19 Feb 2008 14:10:02 +0100
From: Kay Sievers <kay.sievers@...y.org>
To: Alexey Dobriyan <adobriyan@...ru>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org, Greg KH <greg@...ah.com>
Subject: Re: 2.6.25-rc1-sha1: WARNING: at lib/kref.c:43 kref_get+0x20/0x30()
On Tue, 2008-02-19 at 15:03 +0300, Alexey Dobriyan wrote:
> On Tue, Feb 19, 2008 at 09:19:25AM +0100, Kay Sievers wrote:
> > On Feb 18, 2008 1:59 PM, Andrew Morton <akpm@...ux-foundation.org> wrote:
> > > On Fri, 15 Feb 2008 14:08:53 +0300 Alexey Dobriyan <adobriyan@...ru> wrote:
> > >
> > > > Booting without SYSFS fills dmesg like this
> > Can you enable CONFIG_DEBUG_KOBJECT=y? It might give a hint where we
> > miss to initialization of a kobject when sysfs is not compiled in.
>
> It looks like this:
> ------------[ cut here ]------------
> WARNING: at lib/kref.c:43 kref_get+0x2d/0x30()
> Modules linked in: battery(+) button dock thermal processor sbs ac sbshc af_packet loop
> Pid: 1642, comm: modprobe Not tainted 2.6.25-rc2 #2
>
> Call Trace:
> [<ffffffff8022a8cf>] warn_on_slowpath+0x5f/0x80
> [<ffffffff8024cb06>] ? mark_held_locks+0x56/0xa0
> [<ffffffff80282c00>] ? __slab_alloc+0xc0/0x4b0
> [<ffffffff8024cc9f>] ? trace_hardirqs_on+0xbf/0x150
> [<ffffffff802f7f87>] ? kvasprintf+0x57/0x90
> [<ffffffff802f5c18>] ? vsnprintf+0x328/0x6e0
> [<ffffffff802f7fa0>] ? kvasprintf+0x70/0x90
> [<ffffffff802f1ced>] kref_get+0x2d/0x30
> [<ffffffff802f0c4a>] kobject_get+0x1a/0x30
> [<ffffffff802f0d39>] kobject_add_internal+0x59/0x160
> [<ffffffff802f0f6e>] kobject_add_varg+0x6e/0x80
> [<ffffffff802f1399>] kobject_add+0x69/0x90
> [<ffffffff8024cc9f>] ? trace_hardirqs_on+0xbf/0x150
> [<ffffffff802f1c4e>] ? kref_init+0xe/0x10
> [<ffffffff802f0927>] ? kobject_init+0x37/0xa0
> [<ffffffff802f09c3>] ? kobject_create+0x33/0x40
> [<ffffffff802f13fe>] kobject_create_and_add+0x3e/0x80
> [<ffffffff80255adf>] sys_init_module+0x19df/0x1b30
> [<ffffffff8024d928>] ? __lock_acquire+0x748/0x10b0
> [<ffffffff803249a0>] ? acpi_bus_register_driver+0x0/0x40
> [<ffffffff8024cc9f>] ? trace_hardirqs_on+0xbf/0x150
> [<ffffffff80406122>] ? trace_hardirqs_on_thunk+0x35/0x3a
> [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
>
> ---[ end trace 033c2b23880cf02a ]---
> kobject: 'notes' (ffff81017ec370a8): kobject_add_internal: parent: '<NULL>', set: '<NULL>'
Ok, seems the "notes" directory should not be created if SYSFS is not
configured. The "notes" kobject tries to reference the module kobject as
a parent, which isn't initialized in that case.
Does that fix it?
Thanks,
Kay
From: Kay Sievers <kay.sievers@...y.org>
Subject: modules: do not try to add sysfs attributes if !CONFIG_SYSFS
Signed-off-by: Kay Sievers <kay.sievers@...y.org>
---
module.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/kernel/module.c b/kernel/module.c
index 92595ba..2dd60c8 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -987,6 +987,7 @@ static unsigned long resolve_symbol(Elf_Shdr *sechdrs,
return ret;
}
+#ifdef CONFIG_SYSFS
/*
* /sys/module/foo/sections stuff
@@ -1169,7 +1170,7 @@ static void remove_notes_attrs(struct module *mod)
free_notes_attrs(mod->notes_attrs, mod->notes_attrs->notes);
}
-#else
+#else /* CONFIG_KALLSYMS */
static inline void add_sect_attrs(struct module *mod, unsigned int nsect,
char *sectstrings, Elf_Shdr *sechdrs)
@@ -1190,7 +1191,6 @@ static inline void remove_notes_attrs(struct module *mod)
}
#endif /* CONFIG_KALLSYMS */
-#ifdef CONFIG_SYSFS
int module_add_modinfo_attrs(struct module *mod)
{
struct module_attribute *attr;
@@ -1231,9 +1231,7 @@ void module_remove_modinfo_attrs(struct module *mod)
}
kfree(mod->modinfo_attrs);
}
-#endif
-#ifdef CONFIG_SYSFS
int mod_sysfs_init(struct module *mod)
{
int err;
@@ -1299,7 +1297,7 @@ out_unreg:
kobject_put(&mod->mkobj.kobj);
return err;
}
-#endif
+#endif /* CONFIG_SYSFS */
static void mod_kobject_remove(struct module *mod)
{
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists