From a29798bb3fb0144b70bc5baa82c02aeaa6ead075 Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Fri, 22 Sep 2006 11:37:08 +0200 Subject: [PATCH] --- yaml --- r: 39878 b: refs/heads/master c: 513e7337adc32cdfbffecb99953e45a44e812c2d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/base/bus.c | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index d972cbd5ab8e..e353e8fe048f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1bb6881acae1c4f11a6e86f04df32ba45e95031d +refs/heads/master: 513e7337adc32cdfbffecb99953e45a44e812c2d diff --git a/trunk/drivers/base/bus.c b/trunk/drivers/base/bus.c index b90f6e6f6442..d516f7d5f168 100644 --- a/trunk/drivers/base/bus.c +++ b/trunk/drivers/base/bus.c @@ -372,19 +372,30 @@ int bus_add_device(struct device * dev) pr_debug("bus %s: add device %s\n", bus->name, dev->bus_id); error = device_add_attrs(bus, dev); if (error) - goto out; + goto out_put; error = sysfs_create_link(&bus->devices.kobj, &dev->kobj, dev->bus_id); if (error) - goto out; + goto out_id; error = sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "subsystem"); if (error) - goto out; + goto out_subsys; error = sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "bus"); + if (error) + goto out_deprecated; } -out: + return 0; + +out_deprecated: + sysfs_remove_link(&dev->kobj, "subsystem"); +out_subsys: + sysfs_remove_link(&bus->devices.kobj, dev->bus_id); +out_id: + device_remove_attrs(bus, dev); +out_put: + put_bus(dev->bus); return error; }