Messages in this thread Patch in this message | | | From | Andy Shevchenko <> | Subject | [PATCH v1 1/1] driver core: Return proper error code when dev_set_name() fails | Date | Thu, 17 Aug 2023 12:12:21 +0300 |
| |
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: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/base/core.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/base/core.c b/drivers/base/core.c index 3afb7710ccb5..1a1aecabd5ce 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3528,18 +3528,17 @@ int device_add(struct device *dev) * the name, and force the use of dev_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; } + if (dev_name(dev)) + error = 0; /* subsystems can specify simple device enumeration */ - if (!dev_name(dev) && dev->bus && dev->bus->dev_name) - dev_set_name(dev, "%s%u", dev->bus->dev_name, dev->id); - - if (!dev_name(dev)) { - error = -EINVAL; + else if (dev->bus && dev->bus->dev_name) + error = dev_set_name(dev, "%s%u", dev->bus->dev_name, dev->id); + if (error) goto name_error; - } pr_debug("device: '%s': %s\n", dev_name(dev), __func__); -- 2.40.0.1.gaa8946217a0b
| |