diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2005-06-22 19:09:05 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-06-23 02:01:10 -0400 |
commit | d377e85b537a5e166272f937da6ba84350676b6e (patch) | |
tree | f3e5f347cbaa72a1479d991f7cab83228dd44bf0 /drivers/base/bus.c | |
parent | 479f6ea85e513551510ad52f37e69e1c596ad356 (diff) |
[PATCH] driver core: Fix up the device_attach() error handling in bus_add_device()
Don't error out if something "bad" happens when trying to bind a driver to a
device. We want the sysfs attributes to be present for later when we try to
tear down the device.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base/bus.c')
-rw-r--r-- | drivers/base/bus.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 43722af90bdd..c3fac7fd555e 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c | |||
@@ -270,10 +270,9 @@ int bus_add_device(struct device * dev) | |||
270 | 270 | ||
271 | if (bus) { | 271 | if (bus) { |
272 | pr_debug("bus %s: add device %s\n", bus->name, dev->bus_id); | 272 | pr_debug("bus %s: add device %s\n", bus->name, dev->bus_id); |
273 | error = device_attach(dev); | 273 | device_attach(dev); |
274 | klist_add_tail(&bus->klist_devices, &dev->knode_bus); | 274 | klist_add_tail(&bus->klist_devices, &dev->knode_bus); |
275 | if (error >= 0) | 275 | error = device_add_attrs(bus, dev); |
276 | error = device_add_attrs(bus, dev); | ||
277 | if (!error) { | 276 | if (!error) { |
278 | sysfs_create_link(&bus->devices.kobj, &dev->kobj, dev->bus_id); | 277 | sysfs_create_link(&bus->devices.kobj, &dev->kobj, dev->bus_id); |
279 | sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "bus"); | 278 | sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "bus"); |