summaryrefslogtreecommitdiff
path: root/drivers/base/class.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor_core@ameritech.net>2005-09-04 01:35:56 -0500
committerDmitry Torokhov <dtor_core@ameritech.net>2005-09-04 01:35:56 -0500
commit15c42e5a1f0bccb69508059b8ae0720840068b8e (patch)
tree921b088cc7acb50bb8b65dbc30451a8a3958ec8d /drivers/base/class.c
parent541e316aed6f7d6efeb427a88645c2a8f61418d6 (diff)
parentf505380ba7b98ec97bf25300c2a58aeae903530b (diff)
downloadlinux-15c42e5a1f0bccb69508059b8ae0720840068b8e.tar.gz
linux-15c42e5a1f0bccb69508059b8ae0720840068b8e.tar.xz
Merge HEAD from rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'drivers/base/class.c')
-rw-r--r--drivers/base/class.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 479c12570881..0154a1623b21 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -299,6 +299,11 @@ static void class_dev_release(struct kobject * kobj)
pr_debug("device class '%s': release.\n", cd->class_id);
+ if (cd->devt_attr) {
+ kfree(cd->devt_attr);
+ cd->devt_attr = NULL;
+ }
+
if (cls->release)
cls->release(cd);
else {
@@ -591,11 +596,8 @@ void class_device_del(struct class_device *class_dev)
if (class_dev->dev)
sysfs_remove_link(&class_dev->kobj, "device");
- if (class_dev->devt_attr) {
+ if (class_dev->devt_attr)
class_device_remove_file(class_dev, class_dev->devt_attr);
- kfree(class_dev->devt_attr);
- class_dev->devt_attr = NULL;
- }
class_device_remove_attrs(class_dev);
kobject_hotplug(&class_dev->kobj, KOBJ_REMOVE);