driver core: remove class_attrs from struct class
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jun 2017 08:12:42 +0000 (10:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Jun 2017 08:41:00 +0000 (10:41 +0200)
This field is no longer used or needed (use class_groups instead), so it
can be removed along with the driver core functionality that created and
removed these files.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/class.c
include/linux/device.h

index a2b2896693d6439b43a57ae309e82e9e9a267b37..52eb8e644acd1bfa797b4f132474edc931363a1c 100644 (file)
@@ -119,36 +119,6 @@ static void class_put(struct class *cls)
                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)
 {
        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);
        class_put(cls);
-       error = add_class_attrs(class_get(cls));
-       class_put(cls);
        return error;
 }
 EXPORT_SYMBOL_GPL(__class_register);
@@ -226,7 +194,6 @@ EXPORT_SYMBOL_GPL(__class_register);
 void class_unregister(struct class *cls)
 {
        pr_debug("device class '%s': unregistering\n", cls->name);
-       remove_class_attrs(cls);
        class_remove_groups(cls, cls->class_groups);
        kset_unregister(&cls->p->subsys);
 }
index 9a902ae339326696cd5f4a725585f7269bc3700f..5b725b943cf2d0140d18bcc81c38794d1349a3cc 100644 (file)
@@ -365,7 +365,6 @@ int subsys_virtual_register(struct bus_type *subsys,
  * struct class - device classes
  * @name:      Name of the class.
  * @owner:     The module owner.
- * @class_attrs: Default attributes of this class.
  * @class_groups: Default attributes of this class.
  * @dev_groups:        Default attributes of the devices that belong to the class.
  * @dev_kobj:  The kobject that represents this class and links it into the hierarchy.
@@ -394,7 +393,6 @@ struct class {
        const char              *name;
        struct module           *owner;
 
-       struct class_attribute          *class_attrs;
        const struct attribute_group    **class_groups;
        const struct attribute_group    **dev_groups;
        struct kobject                  *dev_kobj;