kset: convert /sys/power to use kset_create
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Nov 2007 17:39:50 +0000 (10:39 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 25 Jan 2008 04:40:16 +0000 (20:40 -0800)
Dynamically create the kset instead of declaring it statically.  We also
rename power_subsys to power_kset to catch all users of the variable and
we properly export it so that people don't have to guess that it really
is present in the system.

The pseries code is wierd, why is it createing /sys/power if CONFIG_PM
is disabled?  Oh well, stupid big boxes ignoring config options...

Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/arm/mach-omap1/pm.c
arch/powerpc/platforms/pseries/power.c
include/linux/kobject.h
kernel/power/disk.c
kernel/power/main.c
kernel/power/power.h

index 3bf01e28df334ceaaf49dc55c8d4cd59e00c09d4..402113c72981e83651e402aa351191b16ec11a29 100644 (file)
@@ -97,7 +97,6 @@ static struct subsys_attribute sleep_while_idle_attr = {
        .store  = omap_pm_sleep_while_idle_store,
 };
 
-extern struct kset power_subsys;
 static void (*omap_sram_idle)(void) = NULL;
 static void (*omap_sram_suspend)(unsigned long r0, unsigned long r1) = NULL;
 
@@ -726,7 +725,7 @@ static int __init omap_pm_init(void)
        omap_pm_init_proc();
 #endif
 
-       error = subsys_create_file(&power_subsys, &sleep_while_idle_attr);
+       error = subsys_create_file(power_kset, &sleep_while_idle_attr);
        if (error)
                printk(KERN_ERR "subsys_create_file failed: %d\n", error);
 
index 08d7a500716729992989c0e844c185f66fe981b3..c36febe7ce7d1e1b4e1b65d53264772e183a7aeb 100644 (file)
@@ -57,7 +57,7 @@ static struct subsys_attribute auto_poweron_attr = {
 };
 
 #ifndef CONFIG_PM
-decl_subsys(power, NULL);
+struct kset *power_kset;
 
 static struct attribute *g[] = {
         &auto_poweron_attr.attr,
@@ -70,18 +70,16 @@ static struct attribute_group attr_group = {
 
 static int __init pm_init(void)
 {
-        int error = subsystem_register(&power_subsys);
-        if (!error)
-                error = sysfs_create_group(&power_subsys.kobj, &attr_group);
-        return error;
+       power_kset = kset_create_and_add("power", NULL, NULL);
+       if (!power_kset)
+               return -ENOMEM;
+       return sysfs_create_group(&power_kset->kobj, &attr_group);
 }
 core_initcall(pm_init);
 #else
-extern struct kset power_subsys;
-
 static int __init apo_pm_init(void)
 {
-       return (subsys_create_file(&power_subsys, &auto_poweron_attr));
+       return (subsys_create_file(power_kset, &auto_poweron_attr));
 }
 __initcall(apo_pm_init);
 #endif
index f2483f6fd639a09b5d9ba69a654c1909fea8b22e..a6dd669cda9d5d7d4b07f693a7a7f7e7e024f658 100644 (file)
@@ -198,6 +198,8 @@ struct kset _name##_subsys = { \
 extern struct kset *kernel_kset;
 /* The global /sys/hypervisor/ kobject for people to chain off of */
 extern struct kobject *hypervisor_kobj;
+/* The global /sys/power/ kset for people to chain off of */
+extern struct kset *power_kset;
 
 extern int __must_check subsystem_register(struct kset *);
 extern void subsystem_unregister(struct kset *);
index 05b64790fe8391ed5189eee02144e5cf63f3fa2b..c3f0e61365dd3a5e8e1b03252ace6110e187a352 100644 (file)
@@ -708,7 +708,7 @@ static struct attribute_group attr_group = {
 
 static int __init pm_disk_init(void)
 {
-       return sysfs_create_group(&power_subsys.kobj, &attr_group);
+       return sysfs_create_group(&power_kset->kobj, &attr_group);
 }
 
 core_initcall(pm_disk_init);
index 1ef31c91ce0e7ce0c24bae651075bf0e173a434a..dce2d76d66de2ed5e370cb73301a26cf39bb04f1 100644 (file)
@@ -276,8 +276,7 @@ EXPORT_SYMBOL(pm_suspend);
 
 #endif /* CONFIG_SUSPEND */
 
-decl_subsys(power, NULL);
-
+struct kset *power_kset;
 
 /**
  *     state - control system power state.
@@ -386,10 +385,10 @@ static struct attribute_group attr_group = {
 
 static int __init pm_init(void)
 {
-       int error = subsystem_register(&power_subsys);
-       if (!error)
-               error = sysfs_create_group(&power_subsys.kobj,&attr_group);
-       return error;
+       power_kset = kset_create_and_add("power", NULL, NULL);
+       if (!power_kset)
+               return -ENOMEM;
+       return sysfs_create_group(&power_kset->kobj, &attr_group);
 }
 
 core_initcall(pm_init);
index 195dc4611764b08a65780976a6231aaf004889fe..1083e6b188abb7eeb0b6adbc7f6dc9a0a4764f7f 100644 (file)
@@ -63,8 +63,6 @@ static struct subsys_attribute _name##_attr = {       \
        .store  = _name##_store,                \
 }
 
-extern struct kset power_subsys;
-
 /* Preferred image size in bytes (default 500 MB) */
 extern unsigned long image_size;
 extern int in_suspend;