Skip to content

Commit

Permalink
kset: convert /sys/power to use kset_create
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Greg Kroah-Hartman committed Jan 25, 2008
1 parent 7405c1e commit 039a5dc
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 19 deletions.
3 changes: 1 addition & 2 deletions arch/arm/mach-omap1/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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);

Expand Down
14 changes: 6 additions & 8 deletions arch/powerpc/platforms/pseries/power.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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
2 changes: 2 additions & 0 deletions include/linux/kobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 *);
Expand Down
2 changes: 1 addition & 1 deletion kernel/power/disk.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
11 changes: 5 additions & 6 deletions kernel/power/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -276,8 +276,7 @@ EXPORT_SYMBOL(pm_suspend);

#endif /* CONFIG_SUSPEND */

decl_subsys(power, NULL);

struct kset *power_kset;

/**
* state - control system power state.
Expand Down Expand Up @@ -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);
2 changes: 0 additions & 2 deletions kernel/power/power.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 039a5dc

Please sign in to comment.