[PATCH 09/62] sysfs: Add attribute array to sysdev classes

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg Kroah-Hartman
Date: Tuesday, March 2, 2010 - 4:28 pm

From: Andi Kleen <andi@firstfloor.org>

Add a attribute array that is automatically registered and unregistered
to struct sysdev_class. This is similar to what struct class has.

A lot of drivers add list of attributes, so it's better to do
this easily in the common sysdev layer.

This adds a new field to struct sysdev_class. I audited the
whole tree and there are no dynamically allocated sysdev classes,
so this is fully compatible.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/base/sys.c     |    9 ++++++++-
 include/linux/sysdev.h |    2 ++
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/drivers/base/sys.c b/drivers/base/sys.c
index a38445c..747c99e 100644
--- a/drivers/base/sys.c
+++ b/drivers/base/sys.c
@@ -145,13 +145,20 @@ int sysdev_class_register(struct sysdev_class *cls)
 	if (retval)
 		return retval;
 
-	return kset_register(&cls->kset);
+	retval = kset_register(&cls->kset);
+	if (!retval && cls->attrs)
+		retval = sysfs_create_files(&cls->kset.kobj,
+					    (const struct attribute **)cls->attrs);
+	return retval;
 }
 
 void sysdev_class_unregister(struct sysdev_class *cls)
 {
 	pr_debug("Unregistering sysdev class '%s'\n",
 		 kobject_name(&cls->kset.kobj));
+	if (cls->attrs)
+		sysfs_remove_files(&cls->kset.kobj,
+				   (const struct attribute **)cls->attrs);
 	kset_unregister(&cls->kset);
 }
 
diff --git a/include/linux/sysdev.h b/include/linux/sysdev.h
index c2458fa..b6244f9 100644
--- a/include/linux/sysdev.h
+++ b/include/linux/sysdev.h
@@ -27,10 +27,12 @@
 
 
 struct sys_device;
+struct sysdev_class_attribute;
 
 struct sysdev_class {
 	const char *name;
 	struct list_head	drivers;
+	struct sysdev_class_attribute **attrs;
 
 	/* Default operations for these types of devices */
 	int	(*shutdown)(struct sys_device *);
-- 
1.7.0.1

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[GIT PATCH] driver core patches for 2.6.33-git, Greg KH, (Tue Mar 2, 4:09 pm)
[PATCH 01/62] kobject-example: Spelling fixes., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 02/62] kset-example: Spelling fixes., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 03/62] Driver core: add platform_create_bundle() helper, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 04/62] driver core: make platform_device_id table const, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 05/62] sysdev: Pass attribute in sysdev_class attri ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 06/62] sysdev: Convert node driver class attributes ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 07/62] sysdev: Convert cpu driver sysdev class attr ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 08/62] sysfs: Add sysfs_add/remove_files utility fu ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 09/62] sysfs: Add attribute array to sysdev classes, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 10/62] sysdev: Convert node driver, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 11/62] sysdev: Use sysdev_class attribute arrays in ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 12/62] sysdev: Add sysdev_create/remove_files, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 13/62] sysdev: Fix type of sysdev class attribute i ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 14/62] sysdev: fix missing s390 conversion, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 15/62] driver-core: Add attribute argument to class ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 16/62] driver core: Add class_attr_string for simpl ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 17/62] driver core: Convert some drivers to CLASS_A ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 18/62] Driver-Core: devtmpfs - reset inode permissi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 19/62] Driver-Core: devtmpfs - remove EXPERIMENTAL ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 20/62] Driver-Core: disable /sbin/hotplug by default, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 21/62] Driver-Core: require valid action string in ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 22/62] sysfs: Cache the last sysfs_dirent to improv ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 23/62] driver-core: firmware_class: remove base.h h ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 24/62] kobject: Constify struct kset_uevent_ops, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 25/62] HOWTO: Updates on subsystem trees, patchwork ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 26/62] sysdev: fix up the probe/release attributes, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 27/62] Driver core: Constify struct sysfs_ops in st ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 28/62] Driver core: make struct platform_driver.id_ ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 29/62] platform-drivers: move probe to .devinit.tex ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 30/62] platform-drivers: move probe to .devinit.tex ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 32/62] x86: move hp-wmi's probe function to .devini ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 33/62] i2c: move i2c_omap's probe function to .devi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 34/62] w1: move omap_hdq's probe function to .devin ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 35/62] media: move omap24xxcam's probe function to ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 36/62] auxdisplay: move cfag12864bfb's probe functi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 38/62] UIO: Add a driver for Hilscher netX-based fi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 39/62] UIO: minor Kconfig fixes, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 40/62] UIO: Remove SMX Cryptengine driver, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 41/62] Driver core: Fix first line of kernel-doc fo ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 42/62] sysfs: Remove sysfs_get/put_active_two, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 43/62] sysfs: Only take active references on attrib ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 44/62] sysfs: Use one lockdep class per sysfs attri ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 45/62] sysfs: Use sysfs_attr_init and sysfs_bin_att ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 46/62] sysfs: Document sysfs_attr_init and sysfs_bi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 47/62] sysfs: Use sysfs_attr_init and sysfs_bin_att ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 48/62] sysfs: windfarm: init sysfs attributes, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 49/62] sysfs: Serialize updates to the vfs inode, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 50/62] sysfs: Pack sysfs_dirent more tightly., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 51/62] sysfs: Implement sysfs_rename_link, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 52/62] driver core: Use sysfs_rename_link in device ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 53/62] sysfs: Pass super_block to sysfs_get_inode, Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 54/62] sysfs: Kill unused sysfs_sb variable., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 56/62] msi-laptop: Support standard ec 66/62 comman ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 57/62] msi-laptop: Add threeg sysfs file for suppor ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 58/62] msi-laptop: Support some MSI 3G netbook that ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 59/62] msi-laptop: Add resume method for set the SC ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 60/62] msi-laptop: Detect 3G device exists by stand ..., Greg Kroah-Hartman, (Tue Mar 2, 4:28 pm)
[PATCH 61/62] msi-laptop: depends on RFKILL, Greg Kroah-Hartman, (Tue Mar 2, 4:29 pm)
[PATCH 62/62] sysfs: fix for thinko with sysfs_bin_attr_init(), Greg Kroah-Hartman, (Tue Mar 2, 4:29 pm)
Re: [PATCH 61/62] msi-laptop: depends on RFKILL, Dmitry Torokhov, (Tue Mar 2, 11:09 pm)
Re: [GIT PATCH] driver core patches for 2.6.33-git, Linus Torvalds, (Mon Mar 8, 10:28 am)