]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
driver core: remove devm_device_add_groups()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jul 2023 13:17:19 +0000 (14:17 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jun 2024 13:53:36 +0000 (15:53 +0200)
There is no more in-kernel users of this function, and no driver should
ever be using it, so remove it from the kernel.

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: "Rafael J. Wysocki" <rafael@kernel.org>
Link: https://lore.kernel.org/r/20230704131715.44454-8-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/core.c
include/linux/device.h

index 131d96c6090be49e01db82af4709d045ff2450fc..2e776fcc31b6950130abfa1f0f9c199401878e0b 100644 (file)
@@ -2845,15 +2845,6 @@ static void devm_attr_group_remove(struct device *dev, void *res)
        sysfs_remove_group(&dev->kobj, group);
 }
 
-static void devm_attr_groups_remove(struct device *dev, void *res)
-{
-       union device_attr_group_devres *devres = res;
-       const struct attribute_group **groups = devres->groups;
-
-       dev_dbg(dev, "%s: removing groups %p\n", __func__, groups);
-       sysfs_remove_groups(&dev->kobj, groups);
-}
-
 /**
  * devm_device_add_group - given a device, create a managed attribute group
  * @dev:       The device to create the group for
@@ -2886,42 +2877,6 @@ int devm_device_add_group(struct device *dev, const struct attribute_group *grp)
 }
 EXPORT_SYMBOL_GPL(devm_device_add_group);
 
-/**
- * devm_device_add_groups - create a bunch of managed attribute groups
- * @dev:       The device to create the group for
- * @groups:    The attribute groups to create, NULL terminated
- *
- * This function creates a bunch of managed attribute groups.  If an error
- * occurs when creating a group, all previously created groups will be
- * removed, unwinding everything back to the original state when this
- * function was called.  It will explicitly warn and error if any of the
- * attribute files being created already exist.
- *
- * Returns 0 on success or error code from sysfs_create_group on failure.
- */
-int devm_device_add_groups(struct device *dev,
-                          const struct attribute_group **groups)
-{
-       union device_attr_group_devres *devres;
-       int error;
-
-       devres = devres_alloc(devm_attr_groups_remove,
-                             sizeof(*devres), GFP_KERNEL);
-       if (!devres)
-               return -ENOMEM;
-
-       error = sysfs_create_groups(&dev->kobj, groups);
-       if (error) {
-               devres_free(devres);
-               return error;
-       }
-
-       devres->groups = groups;
-       devres_add(dev, devres);
-       return 0;
-}
-EXPORT_SYMBOL_GPL(devm_device_add_groups);
-
 static int device_add_attrs(struct device *dev)
 {
        const struct class *class = dev->class;
index fc3bd7116ab9cd3e9ab2d207a9219b8425d09ed6..ace039151cb86fcf12f680934e48730130fc6ccf 100644 (file)
@@ -1220,8 +1220,6 @@ static inline void device_remove_group(struct device *dev,
        return device_remove_groups(dev, groups);
 }
 
-int __must_check devm_device_add_groups(struct device *dev,
-                                       const struct attribute_group **groups);
 int __must_check devm_device_add_group(struct device *dev,
                                       const struct attribute_group *grp);