aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/class.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-06-13 14:45:17 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-11 19:09:06 -0400
commit7b595756ec1f49e0049a9e01a1298d53a7faaa15 (patch)
treecd06687ab3e5c7a5a4ef91903dff207a18c4db76 /drivers/base/class.c
parentdbde0fcf9f8f6d477af3c32d9979e789ee680cde (diff)
sysfs: kill unnecessary attribute->owner
sysfs is now completely out of driver/module lifetime game. After deletion, a sysfs node doesn't access anything outside sysfs proper, so there's no reason to hold onto the attribute owners. Note that often the wrong modules were accounted for as owners leading to accessing removed modules. This patch kills now unnecessary attribute->owner. Note that with this change, userland holding a sysfs node does not prevent the backing module from being unloaded. For more info regarding lifetime rule cleanup, please read the following message. http://article.gmane.org/gmane.linux.kernel/510293 (tweaked by Greg to not delete the field just yet, to make it easier to merge things properly.) Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base/class.c')
-rw-r--r--drivers/base/class.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 8c506dbe3913..9cbfde23b9e3 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -605,7 +605,6 @@ int class_device_add(struct class_device *class_dev)
605 goto out3; 605 goto out3;
606 class_dev->uevent_attr.attr.name = "uevent"; 606 class_dev->uevent_attr.attr.name = "uevent";
607 class_dev->uevent_attr.attr.mode = S_IWUSR; 607 class_dev->uevent_attr.attr.mode = S_IWUSR;
608 class_dev->uevent_attr.attr.owner = parent_class->owner;
609 class_dev->uevent_attr.store = store_uevent; 608 class_dev->uevent_attr.store = store_uevent;
610 error = class_device_create_file(class_dev, &class_dev->uevent_attr); 609 error = class_device_create_file(class_dev, &class_dev->uevent_attr);
611 if (error) 610 if (error)
@@ -620,7 +619,6 @@ int class_device_add(struct class_device *class_dev)
620 } 619 }
621 attr->attr.name = "dev"; 620 attr->attr.name = "dev";
622 attr->attr.mode = S_IRUGO; 621 attr->attr.mode = S_IRUGO;
623 attr->attr.owner = parent_class->owner;
624 attr->show = show_dev; 622 attr->show = show_dev;
625 error = class_device_create_file(class_dev, attr); 623 error = class_device_create_file(class_dev, attr);
626 if (error) { 624 if (error) {