Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7405c1e15edfe43b137bfbc5882f1af34d6d414d
Commit:     7405c1e15edfe43b137bfbc5882f1af34d6d414d
Parent:     081248de0a0288a0ce4e1447a07ccf56aa4fae01
Author:     Greg Kroah-Hartman <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 1 10:39:50 2007 -0700
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Thu Jan 24 20:40:16 2008 -0800

    kset: convert /sys/module to use kset_create
    
    Dynamically create the kset instead of declaring it statically.  We also
    rename module_subsys to module_kset to catch all users of the variable.
    
    Cc: Kay Sievers <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 include/linux/module.h |    4 +++-
 kernel/module.c        |    7 +++----
 kernel/params.c        |   29 +++++++++--------------------
 3 files changed, 15 insertions(+), 25 deletions(-)

diff --git a/include/linux/module.h b/include/linux/module.h
index 2cbc0b8..fbe930b 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -574,7 +574,9 @@ struct device_driver;
 #ifdef CONFIG_SYSFS
 struct module;
 
-extern struct kset module_subsys;
+extern struct kset *module_kset;
+extern struct kobj_type module_ktype;
+extern int module_sysfs_initialized;
 
 int mod_sysfs_init(struct module *mod);
 int mod_sysfs_setup(struct module *mod,
diff --git a/kernel/module.c b/kernel/module.c
index 5514277..d03fcd9 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -47,8 +47,6 @@
 #include <asm/cacheflush.h>
 #include <linux/license.h>
 
-extern int module_sysfs_initialized;
-
 #if 0
 #define DEBUGP printk
 #else
@@ -1223,7 +1221,8 @@ int mod_sysfs_init(struct module *mod)
        err = kobject_set_name(&mod->mkobj.kobj, "%s", mod->name);
        if (err)
                goto out;
-       mod->mkobj.kobj.kset = &module_subsys;
+       mod->mkobj.kobj.kset = module_kset;
+       mod->mkobj.kobj.ktype = &module_ktype;
        mod->mkobj.mod = mod;
 
        kobject_init(&mod->mkobj.kobj);
@@ -2539,7 +2538,7 @@ void module_add_driver(struct module *mod, struct 
device_driver *drv)
                struct kobject *mkobj;
 
                /* Lookup built-in module entry in /sys/modules */
-               mkobj = kset_find_obj(&module_subsys, drv->mod_name);
+               mkobj = kset_find_obj(module_kset, drv->mod_name);
                if (mkobj) {
                        mk = container_of(mkobj, struct module_kobject, kobj);
                        /* remember our module structure */
diff --git a/kernel/params.c b/kernel/params.c
index 9f05182..97e0923 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -30,8 +30,6 @@
 #define DEBUGP(fmt, a...)
 #endif
 
-static struct kobj_type module_ktype;
-
 static inline char dash2underscore(char c)
 {
        if (c == '-')
@@ -562,7 +560,7 @@ static void __init kernel_param_sysfs_setup(const char 
*name,
        BUG_ON(!mk);
 
        mk->mod = THIS_MODULE;
-       mk->kobj.kset = &module_subsys;
+       mk->kobj.kset = module_kset;
        mk->kobj.ktype = &module_ktype;
        kobject_set_name(&mk->kobj, name);
        kobject_init(&mk->kobj);
@@ -695,7 +693,7 @@ static struct kset_uevent_ops module_uevent_ops = {
        .filter = uevent_filter,
 };
 
-decl_subsys(module, &module_uevent_ops);
+struct kset *module_kset;
 int module_sysfs_initialized;
 
 static void module_release(struct kobject *kobj)
@@ -707,7 +705,7 @@ static void module_release(struct kobject *kobj)
         */
 }
 
-static struct kobj_type module_ktype = {
+struct kobj_type module_ktype = {
        .sysfs_ops =    &module_sysfs_ops,
        .release =      module_release,
 };
@@ -717,13 +715,11 @@ static struct kobj_type module_ktype = {
  */
 static int __init param_sysfs_init(void)
 {
-       int ret;
-
-       ret = subsystem_register(&module_subsys);
-       if (ret < 0) {
-               printk(KERN_WARNING "%s (%d): subsystem_register error: %d\n",
-                       __FILE__, __LINE__, ret);
-               return ret;
+       module_kset = kset_create_and_add("module", &module_uevent_ops, NULL);
+       if (!module_kset) {
+               printk(KERN_WARNING "%s (%d): error creating kset\n",
+                       __FILE__, __LINE__);
+               return -ENOMEM;
        }
        module_sysfs_initialized = 1;
 
@@ -733,14 +729,7 @@ static int __init param_sysfs_init(void)
 }
 subsys_initcall(param_sysfs_init);
 
-#else
-#if 0
-static struct sysfs_ops module_sysfs_ops = {
-       .show = NULL,
-       .store = NULL,
-};
-#endif
-#endif
+#endif /* CONFIG_SYSFS */
 
 EXPORT_SYMBOL(param_set_byte);
 EXPORT_SYMBOL(param_get_byte);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to