From ce7b746d7dc0fa4ec505c409921fae5340edffcc Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 27 Jan 2008 10:29:20 -0800 Subject: [PATCH] --- yaml --- r: 80875 b: refs/heads/master c: 123ca9575b1f5342c05a4b84d6af8ba7587c2981 h: refs/heads/master i: 80873: df7954bb192d8cb72aaf03727c11b80d99520a43 80871: f447eb445d32a2badc78bc216ee20cf4fe2723dc v: v3 --- [refs] | 2 +- trunk/kernel/module.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index fddd06237ed3..4edec816e682 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 404aae5d420ec543e2e8434f7ec0edf5e2d2b0c4 +refs/heads/master: 123ca9575b1f5342c05a4b84d6af8ba7587c2981 diff --git a/trunk/kernel/module.c b/trunk/kernel/module.c index 1bb4c5e0d56e..76ddc85a423a 100644 --- a/trunk/kernel/module.c +++ b/trunk/kernel/module.c @@ -1214,6 +1214,7 @@ void module_remove_modinfo_attrs(struct module *mod) 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", @@ -1221,6 +1222,15 @@ int mod_sysfs_init(struct module *mod) err = -EINVAL; goto out; } + + kobj = kset_find_obj(module_kset, mod->name); + if (kobj) { + printk(KERN_ERR "%s: module is already loaded\n", mod->name); + kobject_put(kobj); + err = -EINVAL; + goto out; + } + mod->mkobj.mod = mod; memset(&mod->mkobj.kobj, 0, sizeof(mod->mkobj.kobj));