[PATCH 26/54] kset: convert /sys/power to use kset_create

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-kernel@...>
Cc: Greg Kroah-Hartman <gregkh@...>, Kay Sievers <kay.sievers@...>
Date: Friday, November 2, 2007 - 7:59 pm

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               |    3 +--
 arch/powerpc/platforms/pseries/power.c |   15 +++++++--------
 include/linux/kobject.h                |    2 ++
 kernel/power/disk.c                    |    2 +-
 kernel/power/main.c                    |   12 ++++++------
 kernel/power/power.h                   |    2 --
 6 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 3bf01e2..402113c 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -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);
 
diff --git a/arch/powerpc/platforms/pseries/power.c b/arch/powerpc/platforms/pseries/power.c
index 08d7a50..bf35de4 100644
--- a/arch/powerpc/platforms/pseries/power.c
+++ b/arch/powerpc/platforms/pseries/power.c
@@ -25,6 +25,7 @@
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/init.h>
+#include <linux/err.h>
 
 unsigned long rtas_poweron_auto; /* default and normal state is 0 */
 
@@ -57,7 +58,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 +71,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_register("power", NULL, NULL, NULL);
+	if (IS_ERR(power_kset))
+		return PTR_ERR(power_kset);
+	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
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index 63a6bf9..8f4a38c 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -192,6 +192,8 @@ struct kset _name##_subsys = { \
 extern struct kset *kernel_kset;
 /* The global /sys/hypervisor/ kset for people to chain off of */
 extern struct kset *hypervisor_kset;
+/* 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 *);
diff --git a/kernel/power/disk.c b/kernel/power/disk.c
index 8b15f77..05fbe67 100644
--- a/kernel/power/disk.c
+++ b/kernel/power/disk.c
@@ -698,7 +698,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);
diff --git a/kernel/power/main.c b/kernel/power/main.c
index ce9bf12..6651a3c 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -21,6 +21,7 @@
 #include <linux/freezer.h>
 #include <linux/vmstat.h>
 #include <linux/syscalls.h>
+#include <linux/err.h>
 
 #include "power.h"
 
@@ -273,8 +274,7 @@ EXPORT_SYMBOL(pm_suspend);
 
 #endif /* CONFIG_SUSPEND */
 
-decl_subsys(power, NULL);
-
+struct kset *power_kset;
 
 /**
  *	state - control system power state.
@@ -383,10 +383,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_register("power", NULL, NULL, NULL);
+	if (IS_ERR(power_kset))
+		return PTR_ERR(power_kset);
+	return sysfs_create_group(&power_kset->kobj, &attr_group);
 }
 
 core_initcall(pm_init);
diff --git a/kernel/power/power.h b/kernel/power/power.h
index 195dc46..1083e6b 100644
--- a/kernel/power/power.h
+++ b/kernel/power/power.h
@@ -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;
-- 
1.5.3.4

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [RFC] kobject and kset core changes and cleanups, Andrew Morton, (Tue Nov 6, 4:04 am)
Re: [RFC] kobject and kset core changes and cleanups, Andrew Morton, (Tue Nov 6, 3:11 am)
Re: [RFC] kobject and kset core changes and cleanups, Stephane Eranian, (Tue Nov 6, 4:14 am)
Re: [RFC] kobject and kset core changes and cleanups, Stephane Eranian, (Tue Nov 6, 5:33 pm)
Re: [RFC] kobject and kset core changes and cleanups, Andrew Morton, (Tue Nov 6, 2:25 am)
[PATCH 54/54] kset: remove decl_subsys macro, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 53/54] kset: convert ocfs2 to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 47/54] kobject: convert parisc/pdc_stable to kobj_att..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 52/54] firmware: remove firmware_(un)register(), Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 51/54] kset: convert acpi to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 50/54] kset: convert edd to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 48/54] kset: convert parisc/pdc_stable.c to use kset_..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 49/54] Driver Core: kill subsys_attribute and default..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 46/54] kset: convert s390 ipl.c to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 45/54] kobject: convert s390 ipl.c to kobj_attr inter..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 42/54] kset: convert efivars to use kset_create for t..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 44/54] kobject: convert pseries/power.c to kobj_attr ..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 38/54] efivars: remove new_var and del_var files from..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 43/54] kobject: convert arm/mach-omap1/pm.c to kobj_a..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 40/54] firmware: export firmware_kset so that people ..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 41/54] kset: convert efivars to use kset_create for t..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 39/54] kobject: convert efivars to kobj_attr interface, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 37/54] ecryptfs: remove version_str file from sysfs, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 33/54] driver core: remove fields from struct bus_type, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 35/54] Driver Core: switch all dynamic ksets to kobj_..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 36/54] fix struct user_info export's sysfs interaction, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 34/54] Driver Core: add kobj_attribute handling, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 31/54] driver core: add way to get to bus kset, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 32/54] driver core: add way to get to bus device klist, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 30/54] driver core: remove owner field from struct bu..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 28/54] kset: convert struct bus_device-&gt;devices to..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 29/54] kset: convert struct bus_device-&gt;drivers to..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 27/54] kset: convert s390 hypervisor kset to use kset..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 26/54] kset: convert /sys/power to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 25/54] kset: convert /sys/module to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 22/54] kset: convert /sys/devices/system to use kset_..., Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 24/54] kset: move /sys/slab to /sys/kernel/slab, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 23/54] kset: convert slub to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:59 pm)
[PATCH 16/54] kset: convert kernel_subsys to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 20/54] kset: convert /sys/devices to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 21/54] kset: convert /sys/hypervisor to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 19/54] kset: convert drivers/base/firmware.c kset_cre..., Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 17/54] kset: convert drivers/base/bus.c kset_create_a..., Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 18/54] kset: convert drivers/base/class.c kset_create..., Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 15/54] kset: remove decl_subsys_name, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 13/54] kset: convert dlm to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 14/54] kset: convert pci hotplug to use kset_create_a..., Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 12/54] kset: convert gfs2 dlm to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 11/54] kset: convert gfs2 to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 10/54] kset: convert main fs kset to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 09/54] kset: convert ecryptfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 06/54] kset: convert securityfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 08/54] kset: convert configfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 07/54] kset: convert debugfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 05/54] kset: convert fuse to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 04/54] kset: add kset_create_and_register function, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 03/54] KOBJECT: remove kobj_set_kset_s as no one is u..., Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 02/54] KOBJECT: remove struct kobj_type from struct k..., Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)
[PATCH 01/54] ecryptfs: clean up attribute mess, Greg Kroah-Hartman, (Fri Nov 2, 7:58 pm)