Commit d21fdd07 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Greg Kroah-Hartman

driver core: Return proper error code when dev_set_name() fails

Whe device_add() tries to assign a device name with help of
dev_set_name() the error path explicitly uses -EINVAL, while
the function may return something different.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230817091221.463721-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1b28cb81
...@@ -3530,18 +3530,17 @@ int device_add(struct device *dev) ...@@ -3530,18 +3530,17 @@ int device_add(struct device *dev)
* the name, and force the use of dev_name() * the name, and force the use of dev_name()
*/ */
if (dev->init_name) { if (dev->init_name) {
dev_set_name(dev, "%s", dev->init_name); error = dev_set_name(dev, "%s", dev->init_name);
dev->init_name = NULL; dev->init_name = NULL;
} }
if (dev_name(dev))
error = 0;
/* subsystems can specify simple device enumeration */ /* subsystems can specify simple device enumeration */
if (!dev_name(dev) && dev->bus && dev->bus->dev_name) else if (dev->bus && dev->bus->dev_name)
dev_set_name(dev, "%s%u", dev->bus->dev_name, dev->id); error = dev_set_name(dev, "%s%u", dev->bus->dev_name, dev->id);
if (error)
if (!dev_name(dev)) {
error = -EINVAL;
goto name_error; goto name_error;
}
pr_debug("device: '%s': %s\n", dev_name(dev), __func__); pr_debug("device: '%s': %s\n", dev_name(dev), __func__);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment