All buses have been converted from driver_set_override() to the generic
driver_override infrastructure introduced in commit cb3d1049f4ea
("driver core: generalize driver_override in struct device").

Buses now either opt into the generic sysfs callbacks via the
bus_type::driver_override flag, or use device_set_driver_override() /
__device_set_driver_override() directly.

Thus, remove the now-unused driver_set_override() helper.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Signed-off-by: Danilo Krummrich <[email protected]>
---
 drivers/base/driver.c         | 75 -----------------------------------
 include/linux/device/driver.h |  2 -
 2 files changed, 77 deletions(-)

diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 8ab010ddf709..7ed834f7199c 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -30,81 +30,6 @@ static struct device *next_device(struct klist_iter *i)
        return dev;
 }
 
-/**
- * driver_set_override() - Helper to set or clear driver override.
- * @dev: Device to change
- * @override: Address of string to change (e.g. &device->driver_override);
- *            The contents will be freed and hold newly allocated override.
- * @s: NUL-terminated string, new driver name to force a match, pass empty
- *     string to clear it ("" or "\n", where the latter is only for sysfs
- *     interface).
- * @len: length of @s
- *
- * Helper to set or clear driver override in a device, intended for the cases
- * when the driver_override field is allocated by driver/bus code.
- *
- * Returns: 0 on success or a negative error code on failure.
- */
-int driver_set_override(struct device *dev, const char **override,
-                       const char *s, size_t len)
-{
-       const char *new, *old;
-       char *cp;
-
-       if (!override || !s)
-               return -EINVAL;
-
-       /*
-        * The stored value will be used in sysfs show callback (sysfs_emit()),
-        * which has a length limit of PAGE_SIZE and adds a trailing newline.
-        * Thus we can store one character less to avoid truncation during sysfs
-        * show.
-        */
-       if (len >= (PAGE_SIZE - 1))
-               return -EINVAL;
-
-       /*
-        * Compute the real length of the string in case userspace sends us a
-        * bunch of \0 characters like python likes to do.
-        */
-       len = strlen(s);
-
-       if (!len) {
-               /* Empty string passed - clear override */
-               device_lock(dev);
-               old = *override;
-               *override = NULL;
-               device_unlock(dev);
-               kfree(old);
-
-               return 0;
-       }
-
-       cp = strnchr(s, len, '\n');
-       if (cp)
-               len = cp - s;
-
-       new = kstrndup(s, len, GFP_KERNEL);
-       if (!new)
-               return -ENOMEM;
-
-       device_lock(dev);
-       old = *override;
-       if (cp != s) {
-               *override = new;
-       } else {
-               /* "\n" passed - clear override */
-               kfree(new);
-               *override = NULL;
-       }
-       device_unlock(dev);
-
-       kfree(old);
-
-       return 0;
-}
-EXPORT_SYMBOL_GPL(driver_set_override);
-
 /**
  * driver_for_each_device - Iterator for devices bound to a driver.
  * @drv: Driver we're iterating.
diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index bbc67ec513ed..aa3465a369f0 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -160,8 +160,6 @@ int __must_check driver_create_file(const struct 
device_driver *driver,
 void driver_remove_file(const struct device_driver *driver,
                        const struct driver_attribute *attr);
 
-int driver_set_override(struct device *dev, const char **override,
-                       const char *s, size_t len);
 int __must_check driver_for_each_device(struct device_driver *drv, struct 
device *start,
                                        void *data, device_iter_t fn);
 struct device *driver_find_device(const struct device_driver *drv,
-- 
2.53.0


Reply via email to