aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/core.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/core.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/core.c')
-rw-r--r--drivers/base/core.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index cff4fbfbb055..e3fb87bfc6e1 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -683,8 +683,6 @@ int device_add(struct device *dev)
683 683
684 dev->uevent_attr.attr.name = "uevent"; 684 dev->uevent_attr.attr.name = "uevent";
685 dev->uevent_attr.attr.mode = S_IRUGO | S_IWUSR; 685 dev->uevent_attr.attr.mode = S_IRUGO | S_IWUSR;
686 if (dev->driver)
687 dev->uevent_attr.attr.owner = dev->driver->owner;
688 dev->uevent_attr.store = store_uevent; 686 dev->uevent_attr.store = store_uevent;
689 dev->uevent_attr.show = show_uevent; 687 dev->uevent_attr.show = show_uevent;
690 error = device_create_file(dev, &dev->uevent_attr); 688 error = device_create_file(dev, &dev->uevent_attr);
@@ -700,8 +698,6 @@ int device_add(struct device *dev)
700 } 698 }
701 attr->attr.name = "dev"; 699 attr->attr.name = "dev";
702 attr->attr.mode = S_IRUGO; 700 attr->attr.mode = S_IRUGO;
703 if (dev->driver)
704 attr->attr.owner = dev->driver->owner;
705 attr->show = show_dev; 701 attr->show = show_dev;
706 error = device_create_file(dev, attr); 702 error = device_create_file(dev, attr);
707 if (error) { 703 if (error) {