diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-06-14 18:42:14 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-06-14 18:42:14 -0700 |
commit | 99f39df16388d3f31f21862b6bddeba0b30fe02e (patch) | |
tree | 4020935857e7a213df583e7383727e4a0068d9d0 /driver | |
parent | cf45b5d4be20d0b0c235989c58ffd050051a3d48 (diff) | |
download | patches-99f39df16388d3f31f21862b6bddeba0b30fe02e.tar.gz |
put the class symlinks in the proper place in the driver class patch
Diffstat (limited to 'driver')
-rw-r--r-- | driver/device-class.patch | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/driver/device-class.patch b/driver/device-class.patch index bc86f1385c447..65ef6b53a95b7 100644 --- a/driver/device-class.patch +++ b/driver/device-class.patch @@ -14,9 +14,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- drivers/base/class.c | 1 - drivers/base/core.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++++- + drivers/base/core.c | 167 ++++++++++++++++++++++++++++++++++++++++++++++++- include/linux/device.h | 14 ++++ - 3 files changed, 176 insertions(+), 1 deletion(-) + 3 files changed, 181 insertions(+), 1 deletion(-) --- gregkh-2.6.orig/drivers/base/class.c +++ gregkh-2.6/drivers/base/class.c @@ -101,7 +101,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> init_MUTEX(&dev->sem); device_init_wakeup(dev, 0); } -@@ -274,6 +301,26 @@ int device_add(struct device *dev) +@@ -274,6 +301,31 @@ int device_add(struct device *dev) dev->uevent_attr.store = store_uevent; device_create_file(dev, &dev->uevent_attr); @@ -125,10 +125,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + + dev->devt_attr = attr; + } ++ ++ if (dev->class) ++ sysfs_create_link(&dev->class->subsys.kset.kobj, &dev->kobj, ++ dev->bus_id); ++ if ((error = device_pm_add(dev))) goto PMError; if ((error = bus_add_device(dev))) -@@ -292,6 +339,11 @@ int device_add(struct device *dev) +@@ -292,6 +344,11 @@ int device_add(struct device *dev) BusError: device_pm_remove(dev); PMError: @@ -140,16 +145,18 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> kobject_uevent(&dev->kobj, KOBJ_REMOVE); kobject_del(&dev->kobj); Error: -@@ -367,6 +419,8 @@ void device_del(struct device * dev) +@@ -367,6 +424,10 @@ void device_del(struct device * dev) if (parent) klist_del(&dev->knode_parent); + if (dev->devt_attr) + device_remove_file(dev, dev->devt_attr); ++ if (dev->class) ++ sysfs_remove_link(&dev->class->subsys.kset.kobj, dev->bus_id); device_remove_file(dev, &dev->uevent_attr); /* Notify the platform of the removal, in case they -@@ -451,3 +505,109 @@ EXPORT_SYMBOL_GPL(put_device); +@@ -451,3 +512,107 @@ EXPORT_SYMBOL_GPL(put_device); EXPORT_SYMBOL_GPL(device_create_file); EXPORT_SYMBOL_GPL(device_remove_file); @@ -218,7 +225,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + down(&class->sem); + list_add_tail(&dev->node, &class->devices); + up(&class->sem); -+ sysfs_create_link(&class->subsys.kset.kobj, &dev->kobj, dev->bus_id); + + return dev; + @@ -251,7 +257,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + up(&class->sem); + + if (dev) { -+ sysfs_remove_link(&class->subsys.kset.kobj, dev->bus_id); + list_del_init(&dev->node); + device_unregister(dev); + } |