diff options
author | Kay Sievers <kay.sievers@suse.de> | 2006-06-15 09:31:56 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-06-21 15:40:49 -0400 |
commit | b9d9c82b4d081feb464f62dfc786c8621d09ecd2 (patch) | |
tree | 511d15b4d7aaba80a2c0fe49622a3224ca386122 /drivers/base/bus.c | |
parent | 23681e479129854305da1da32f7f1eaf635ef22c (diff) |
[PATCH] Driver core: add generic "subsystem" link to all devices
Like the SUBSYTEM= key we find in the environment of the uevent, this
creates a generic "subsystem" link in sysfs for every device. Userspace
usually doesn't care at all if its a "class" or a "bus" device. This
provides an unified way to determine the subsytem of a device, regardless
of the way the driver core has created it.
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base/bus.c')
-rw-r--r-- | drivers/base/bus.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 64ba9011d1a8..050d86d0b872 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c | |||
@@ -374,6 +374,7 @@ int bus_add_device(struct device * dev) | |||
374 | error = device_add_attrs(bus, dev); | 374 | error = device_add_attrs(bus, dev); |
375 | if (!error) { | 375 | if (!error) { |
376 | sysfs_create_link(&bus->devices.kobj, &dev->kobj, dev->bus_id); | 376 | sysfs_create_link(&bus->devices.kobj, &dev->kobj, dev->bus_id); |
377 | sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "subsystem"); | ||
377 | sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "bus"); | 378 | sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "bus"); |
378 | } | 379 | } |
379 | } | 380 | } |
@@ -408,6 +409,7 @@ void bus_attach_device(struct device * dev) | |||
408 | void bus_remove_device(struct device * dev) | 409 | void bus_remove_device(struct device * dev) |
409 | { | 410 | { |
410 | if (dev->bus) { | 411 | if (dev->bus) { |
412 | sysfs_remove_link(&dev->kobj, "subsystem"); | ||
411 | sysfs_remove_link(&dev->kobj, "bus"); | 413 | sysfs_remove_link(&dev->kobj, "bus"); |
412 | sysfs_remove_link(&dev->bus->devices.kobj, dev->bus_id); | 414 | sysfs_remove_link(&dev->bus->devices.kobj, dev->bus_id); |
413 | device_remove_attrs(dev->bus, dev); | 415 | device_remove_attrs(dev->bus, dev); |