|
@@ -119,36 +119,6 @@ static void class_put(struct class *cls)
|
|
kset_put(&cls->p->subsys);
|
|
kset_put(&cls->p->subsys);
|
|
}
|
|
}
|
|
|
|
|
|
-static int add_class_attrs(struct class *cls)
|
|
|
|
-{
|
|
|
|
- int i;
|
|
|
|
- int error = 0;
|
|
|
|
-
|
|
|
|
- if (cls->class_attrs) {
|
|
|
|
- for (i = 0; cls->class_attrs[i].attr.name; i++) {
|
|
|
|
- error = class_create_file(cls, &cls->class_attrs[i]);
|
|
|
|
- if (error)
|
|
|
|
- goto error;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-done:
|
|
|
|
- return error;
|
|
|
|
-error:
|
|
|
|
- while (--i >= 0)
|
|
|
|
- class_remove_file(cls, &cls->class_attrs[i]);
|
|
|
|
- goto done;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void remove_class_attrs(struct class *cls)
|
|
|
|
-{
|
|
|
|
- int i;
|
|
|
|
-
|
|
|
|
- if (cls->class_attrs) {
|
|
|
|
- for (i = 0; cls->class_attrs[i].attr.name; i++)
|
|
|
|
- class_remove_file(cls, &cls->class_attrs[i]);
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static void klist_class_dev_get(struct klist_node *n)
|
|
static void klist_class_dev_get(struct klist_node *n)
|
|
{
|
|
{
|
|
struct device *dev = container_of(n, struct device, knode_class);
|
|
struct device *dev = container_of(n, struct device, knode_class);
|
|
@@ -217,8 +187,6 @@ int __class_register(struct class *cls, struct lock_class_key *key)
|
|
}
|
|
}
|
|
error = class_add_groups(class_get(cls), cls->class_groups);
|
|
error = class_add_groups(class_get(cls), cls->class_groups);
|
|
class_put(cls);
|
|
class_put(cls);
|
|
- error = add_class_attrs(class_get(cls));
|
|
|
|
- class_put(cls);
|
|
|
|
return error;
|
|
return error;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(__class_register);
|
|
EXPORT_SYMBOL_GPL(__class_register);
|
|
@@ -226,7 +194,6 @@ EXPORT_SYMBOL_GPL(__class_register);
|
|
void class_unregister(struct class *cls)
|
|
void class_unregister(struct class *cls)
|
|
{
|
|
{
|
|
pr_debug("device class '%s': unregistering\n", cls->name);
|
|
pr_debug("device class '%s': unregistering\n", cls->name);
|
|
- remove_class_attrs(cls);
|
|
|
|
class_remove_groups(cls, cls->class_groups);
|
|
class_remove_groups(cls, cls->class_groups);
|
|
kset_unregister(&cls->p->subsys);
|
|
kset_unregister(&cls->p->subsys);
|
|
}
|
|
}
|