summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorJunjie Mao <junjie_mao@yeah.net>2015-01-28 10:02:44 +0800
committerLuis Henriques <luis.henriques@canonical.com>2015-05-06 11:33:02 +0100
commit2759fc53001a992ed632d4222d6650f5171a3623 (patch)
treee1c964c3abf1631a2a08cd0159ac7cd15093476a /drivers/base
parent85e68cfc159ed91bf1292e2d180fbdf1722a8d3f (diff)
downloadlinux-stable-2759fc53001a992ed632d4222d6650f5171a3623.tar.gz
linux-stable-2759fc53001a992ed632d4222d6650f5171a3623.tar.bz2
linux-stable-2759fc53001a992ed632d4222d6650f5171a3623.zip
driver core: bus: Goto appropriate labels on failure in bus_add_device
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/bus.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 876bae5ade33..79bc203f51ef 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -515,11 +515,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)