aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-06-14 18:42:14 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-06-14 18:42:14 -0700
commit99f39df16388d3f31f21862b6bddeba0b30fe02e (patch)
tree4020935857e7a213df583e7383727e4a0068d9d0 /driver
parentcf45b5d4be20d0b0c235989c58ffd050051a3d48 (diff)
downloadpatches-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.patch21
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);
+ }