[PATCH 3.12 080/142] driver core: bus: Goto appropriate labels on failure in bus_add_device

Jiri Slaby
2015-05-16T08:46:51Z

From: Junjie Mao <junjie_mao@yeah.net>

3.12-stable review patch. If anyone has any objections, please let me know.

===============

commit 1c34203a1496d1849ba978021b878b3447d433c8 upstream.

It is not necessary to call device_remove_groups() when device_add_groups()
fails.

The group added by device_add_groups() should be removed if sysfs_create_link()
fails.

Fixes: fa6fdb33b486 ("driver core: bus_type: add dev_groups")
Signed-off-by: Junjie Mao <junjie_mao@yeah.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/base/bus.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index aed92e41f291..f95dead9a8c2 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -504,11 +504,11 @@ int bus_add_device(struct device *dev)
goto out_put;
error = device_add_groups(dev, bus->dev_groups);
if (error)
- goto out_groups;
+ goto out_id;
error = sysfs_create_link(&bus->p->devices_kset->kobj,
&dev->kobj, dev_name(dev));
if (error)
- goto out_id;
+ goto out_groups;
error = sysfs_create_link(&dev->kobj,
&dev->bus->p->subsys.kobj, "subsystem");
if (error)
--
2.3.7