diff options
Diffstat (limited to 'drivers/base/class.c')
-rw-r--r-- | drivers/base/class.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c index 80bbb2074636..20c4ea6eb50d 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c | |||
@@ -19,10 +19,8 @@ | |||
19 | #include <linux/slab.h> | 19 | #include <linux/slab.h> |
20 | #include "base.h" | 20 | #include "base.h" |
21 | 21 | ||
22 | extern struct subsystem devices_subsys; | ||
23 | |||
24 | #define to_class_attr(_attr) container_of(_attr, struct class_attribute, attr) | 22 | #define to_class_attr(_attr) container_of(_attr, struct class_attribute, attr) |
25 | #define to_class(obj) container_of(obj, struct class, subsys.kset.kobj) | 23 | #define to_class(obj) container_of(obj, struct class, subsys.kobj) |
26 | 24 | ||
27 | static ssize_t | 25 | static ssize_t |
28 | class_attr_show(struct kobject * kobj, struct attribute * attr, char * buf) | 26 | class_attr_show(struct kobject * kobj, struct attribute * attr, char * buf) |
@@ -80,7 +78,7 @@ int class_create_file(struct class * cls, const struct class_attribute * attr) | |||
80 | { | 78 | { |
81 | int error; | 79 | int error; |
82 | if (cls) { | 80 | if (cls) { |
83 | error = sysfs_create_file(&cls->subsys.kset.kobj, &attr->attr); | 81 | error = sysfs_create_file(&cls->subsys.kobj, &attr->attr); |
84 | } else | 82 | } else |
85 | error = -EINVAL; | 83 | error = -EINVAL; |
86 | return error; | 84 | return error; |
@@ -89,7 +87,7 @@ int class_create_file(struct class * cls, const struct class_attribute * attr) | |||
89 | void class_remove_file(struct class * cls, const struct class_attribute * attr) | 87 | void class_remove_file(struct class * cls, const struct class_attribute * attr) |
90 | { | 88 | { |
91 | if (cls) | 89 | if (cls) |
92 | sysfs_remove_file(&cls->subsys.kset.kobj, &attr->attr); | 90 | sysfs_remove_file(&cls->subsys.kobj, &attr->attr); |
93 | } | 91 | } |
94 | 92 | ||
95 | static struct class *class_get(struct class *cls) | 93 | static struct class *class_get(struct class *cls) |
@@ -147,7 +145,7 @@ int class_register(struct class * cls) | |||
147 | INIT_LIST_HEAD(&cls->interfaces); | 145 | INIT_LIST_HEAD(&cls->interfaces); |
148 | kset_init(&cls->class_dirs); | 146 | kset_init(&cls->class_dirs); |
149 | init_MUTEX(&cls->sem); | 147 | init_MUTEX(&cls->sem); |
150 | error = kobject_set_name(&cls->subsys.kset.kobj, "%s", cls->name); | 148 | error = kobject_set_name(&cls->subsys.kobj, "%s", cls->name); |
151 | if (error) | 149 | if (error) |
152 | return error; | 150 | return error; |
153 | 151 | ||
@@ -611,7 +609,7 @@ int class_device_add(struct class_device *class_dev) | |||
611 | if (parent_class_dev) | 609 | if (parent_class_dev) |
612 | class_dev->kobj.parent = &parent_class_dev->kobj; | 610 | class_dev->kobj.parent = &parent_class_dev->kobj; |
613 | else | 611 | else |
614 | class_dev->kobj.parent = &parent_class->subsys.kset.kobj; | 612 | class_dev->kobj.parent = &parent_class->subsys.kobj; |
615 | 613 | ||
616 | error = kobject_add(&class_dev->kobj); | 614 | error = kobject_add(&class_dev->kobj); |
617 | if (error) | 615 | if (error) |
@@ -619,7 +617,7 @@ int class_device_add(struct class_device *class_dev) | |||
619 | 617 | ||
620 | /* add the needed attributes to this device */ | 618 | /* add the needed attributes to this device */ |
621 | error = sysfs_create_link(&class_dev->kobj, | 619 | error = sysfs_create_link(&class_dev->kobj, |
622 | &parent_class->subsys.kset.kobj, "subsystem"); | 620 | &parent_class->subsys.kobj, "subsystem"); |
623 | if (error) | 621 | if (error) |
624 | goto out3; | 622 | goto out3; |
625 | class_dev->uevent_attr.attr.name = "uevent"; | 623 | class_dev->uevent_attr.attr.name = "uevent"; |
@@ -917,8 +915,8 @@ int __init classes_init(void) | |||
917 | /* ick, this is ugly, the things we go through to keep from showing up | 915 | /* ick, this is ugly, the things we go through to keep from showing up |
918 | * in sysfs... */ | 916 | * in sysfs... */ |
919 | subsystem_init(&class_obj_subsys); | 917 | subsystem_init(&class_obj_subsys); |
920 | if (!class_obj_subsys.kset.subsys) | 918 | if (!class_obj_subsys.kobj.parent) |
921 | class_obj_subsys.kset.subsys = &class_obj_subsys; | 919 | class_obj_subsys.kobj.parent = &class_obj_subsys.kobj; |
922 | return 0; | 920 | return 0; |
923 | } | 921 | } |
924 | 922 | ||