From: Greg Kroah-Hartman <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: Andi Kleen <andi@firstfloor.org>, Andi Kleen <ak@linux.intel.com>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 17/62] driver core: Convert some drivers to CLASS_ATTR_STRING
Date: Tue, 2 Mar 2010 15:28:16 -0800 [thread overview]
Message-ID: <1267572541-410-17-git-send-email-gregkh@suse.de> (raw)
In-Reply-To: <20100302230933.GA32287@kroah.com>
From: Andi Kleen <andi@firstfloor.org>
Convert some drivers who export a single string as class attribute
to the new class_attr_string functions. This removes redundant
code all over.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/gpu/drm/drm_sysfs.c | 19 ++++++++-----------
drivers/infiniband/core/ucm.c | 15 +++++----------
drivers/infiniband/core/user_mad.c | 11 +++--------
drivers/infiniband/core/uverbs_main.c | 11 +++--------
drivers/misc/phantom.c | 13 ++++---------
drivers/staging/asus_oled/asus_oled.c | 15 ++++-----------
6 files changed, 27 insertions(+), 57 deletions(-)
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index b95aaf2..014ce24 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -70,20 +70,17 @@ static int drm_class_resume(struct device *dev)
return 0;
}
-/* Display the version of drm_core. This doesn't work right in current design */
-static ssize_t version_show(struct class *dev, struct class_attribute *attr,
- char *buf)
-{
- return sprintf(buf, "%s %d.%d.%d %s\n", CORE_NAME, CORE_MAJOR,
- CORE_MINOR, CORE_PATCHLEVEL, CORE_DATE);
-}
-
static char *drm_devnode(struct device *dev, mode_t *mode)
{
return kasprintf(GFP_KERNEL, "dri/%s", dev_name(dev));
}
-static CLASS_ATTR(version, S_IRUGO, version_show, NULL);
+static CLASS_ATTR_STRING(version, S_IRUGO,
+ CORE_NAME " "
+ __stringify(CORE_MAJOR) "."
+ __stringify(CORE_MINOR) "."
+ __stringify(CORE_PATCHLEVEL) " "
+ CORE_DATE);
/**
* drm_sysfs_create - create a struct drm_sysfs_class structure
@@ -110,7 +107,7 @@ struct class *drm_sysfs_create(struct module *owner, char *name)
class->suspend = drm_class_suspend;
class->resume = drm_class_resume;
- err = class_create_file(class, &class_attr_version);
+ err = class_create_file(class, &class_attr_version.attr);
if (err)
goto err_out_class;
@@ -133,7 +130,7 @@ void drm_sysfs_destroy(void)
{
if ((drm_class == NULL) || (IS_ERR(drm_class)))
return;
- class_remove_file(drm_class, &class_attr_version);
+ class_remove_file(drm_class, &class_attr_version.attr);
class_destroy(drm_class);
}
diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c
index 98c1643..622afb6 100644
--- a/drivers/infiniband/core/ucm.c
+++ b/drivers/infiniband/core/ucm.c
@@ -1297,13 +1297,8 @@ static void ib_ucm_remove_one(struct ib_device *device)
device_unregister(&ucm_dev->dev);
}
-static ssize_t show_abi_version(struct class *class,
- struct class_attribute *attr,
- char *buf)
-{
- return sprintf(buf, "%d\n", IB_USER_CM_ABI_VERSION);
-}
-static CLASS_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
+static CLASS_ATTR_STRING(abi_version, S_IRUGO,
+ __stringify(IB_USER_CM_ABI_VERSION));
static int __init ib_ucm_init(void)
{
@@ -1316,7 +1311,7 @@ static int __init ib_ucm_init(void)
goto error1;
}
- ret = class_create_file(&cm_class, &class_attr_abi_version);
+ ret = class_create_file(&cm_class, &class_attr_abi_version.attr);
if (ret) {
printk(KERN_ERR "ucm: couldn't create abi_version attribute\n");
goto error2;
@@ -1330,7 +1325,7 @@ static int __init ib_ucm_init(void)
return 0;
error3:
- class_remove_file(&cm_class, &class_attr_abi_version);
+ class_remove_file(&cm_class, &class_attr_abi_version.attr);
error2:
unregister_chrdev_region(IB_UCM_BASE_DEV, IB_UCM_MAX_DEVICES);
error1:
@@ -1340,7 +1335,7 @@ error1:
static void __exit ib_ucm_cleanup(void)
{
ib_unregister_client(&ucm_client);
- class_remove_file(&cm_class, &class_attr_abi_version);
+ class_remove_file(&cm_class, &class_attr_abi_version.attr);
unregister_chrdev_region(IB_UCM_BASE_DEV, IB_UCM_MAX_DEVICES);
idr_destroy(&ctx_id_table);
}
diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c
index 113dd0d..bff5a91 100644
--- a/drivers/infiniband/core/user_mad.c
+++ b/drivers/infiniband/core/user_mad.c
@@ -984,13 +984,8 @@ static ssize_t show_port(struct device *dev, struct device_attribute *attr,
}
static DEVICE_ATTR(port, S_IRUGO, show_port, NULL);
-static ssize_t show_abi_version(struct class *class,
- struct class_attribute *attr,
- char *buf)
-{
- return sprintf(buf, "%d\n", IB_USER_MAD_ABI_VERSION);
-}
-static CLASS_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
+static CLASS_ATTR_STRING(abi_version, S_IRUGO,
+ __stringify(IB_USER_MAD_ABI_VERSION));
static int ib_umad_init_port(struct ib_device *device, int port_num,
struct ib_umad_port *port)
@@ -1187,7 +1182,7 @@ static int __init ib_umad_init(void)
goto out_chrdev;
}
- ret = class_create_file(umad_class, &class_attr_abi_version);
+ ret = class_create_file(umad_class, &class_attr_abi_version.attr);
if (ret) {
printk(KERN_ERR "user_mad: couldn't create abi_version attribute\n");
goto out_class;
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index ef541b9..1f16b88 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -729,13 +729,8 @@ static ssize_t show_dev_abi_version(struct device *device,
}
static DEVICE_ATTR(abi_version, S_IRUGO, show_dev_abi_version, NULL);
-static ssize_t show_abi_version(struct class *class,
- struct class_attribute *attr,
- char *buf)
-{
- return sprintf(buf, "%d\n", IB_USER_VERBS_ABI_VERSION);
-}
-static CLASS_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
+static CLASS_ATTR_STRING(abi_version, S_IRUGO,
+ __stringify(IB_USER_VERBS_ABI_VERSION));
static void ib_uverbs_add_one(struct ib_device *device)
{
@@ -860,7 +855,7 @@ static int __init ib_uverbs_init(void)
goto out_chrdev;
}
- ret = class_create_file(uverbs_class, &class_attr_abi_version);
+ ret = class_create_file(uverbs_class, &class_attr_abi_version.attr);
if (ret) {
printk(KERN_ERR "user_verbs: couldn't create abi_version attribute\n");
goto out_class;
diff --git a/drivers/misc/phantom.c b/drivers/misc/phantom.c
index d30ae95..779aa8e 100644
--- a/drivers/misc/phantom.c
+++ b/drivers/misc/phantom.c
@@ -497,12 +497,7 @@ static struct pci_driver phantom_pci_driver = {
.resume = phantom_resume
};
-static ssize_t phantom_show_version(struct class *cls, struct class_attribute *attr, char *buf)
-{
- return sprintf(buf, PHANTOM_VERSION "\n");
-}
-
-static CLASS_ATTR(version, 0444, phantom_show_version, NULL);
+static CLASS_ATTR_STRING(version, 0444, PHANTOM_VERSION);
static int __init phantom_init(void)
{
@@ -515,7 +510,7 @@ static int __init phantom_init(void)
printk(KERN_ERR "phantom: can't register phantom class\n");
goto err;
}
- retval = class_create_file(phantom_class, &class_attr_version);
+ retval = class_create_file(phantom_class, &class_attr_version.attr);
if (retval) {
printk(KERN_ERR "phantom: can't create sysfs version file\n");
goto err_class;
@@ -541,7 +536,7 @@ static int __init phantom_init(void)
err_unchr:
unregister_chrdev_region(dev, PHANTOM_MAX_MINORS);
err_attr:
- class_remove_file(phantom_class, &class_attr_version);
+ class_remove_file(phantom_class, &class_attr_version.attr);
err_class:
class_destroy(phantom_class);
err:
@@ -554,7 +549,7 @@ static void __exit phantom_exit(void)
unregister_chrdev_region(MKDEV(phantom_major, 0), PHANTOM_MAX_MINORS);
- class_remove_file(phantom_class, &class_attr_version);
+ class_remove_file(phantom_class, &class_attr_version.attr);
class_destroy(phantom_class);
pr_debug("phantom: module successfully removed\n");
diff --git a/drivers/staging/asus_oled/asus_oled.c b/drivers/staging/asus_oled/asus_oled.c
index d11e897..34a1f5f 100644
--- a/drivers/staging/asus_oled/asus_oled.c
+++ b/drivers/staging/asus_oled/asus_oled.c
@@ -759,15 +759,8 @@ static struct usb_driver oled_driver = {
.id_table = id_table,
};
-static ssize_t version_show(struct class *dev,
- struct class_attribute *attr,
- char *buf)
-{
- return sprintf(buf, ASUS_OLED_UNDERSCORE_NAME " %s\n",
- ASUS_OLED_VERSION);
-}
-
-static CLASS_ATTR(version, S_IRUGO, version_show, NULL);
+static CLASS_ATTR_STRING(version, S_IRUGO,
+ ASUS_OLED_UNDERSCORE_NAME " " ASUS_OLED_VERSION);
static int __init asus_oled_init(void)
{
@@ -779,7 +772,7 @@ static int __init asus_oled_init(void)
return PTR_ERR(oled_class);
}
- retval = class_create_file(oled_class, &class_attr_version);
+ retval = class_create_file(oled_class, &class_attr_version.attr);
if (retval) {
err("Error creating class version file");
goto error;
@@ -801,7 +794,7 @@ error:
static void __exit asus_oled_exit(void)
{
- class_remove_file(oled_class, &class_attr_version);
+ class_remove_file(oled_class, &class_attr_version.attr);
class_destroy(oled_class);
usb_deregister(&oled_driver);
--
1.7.0.1
next prev parent reply other threads:[~2010-03-02 23:57 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-02 23:09 [GIT PATCH] driver core patches for 2.6.33-git Greg KH
2010-03-02 23:28 ` [PATCH 01/62] kobject-example: Spelling fixes Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 02/62] kset-example: " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 03/62] Driver core: add platform_create_bundle() helper Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 04/62] driver core: make platform_device_id table const Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 05/62] sysdev: Pass attribute in sysdev_class attributes show/store Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 06/62] sysdev: Convert node driver class attributes to be data driven Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 07/62] sysdev: Convert cpu driver sysdev class attributes Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 08/62] sysfs: Add sysfs_add/remove_files utility functions Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 09/62] sysfs: Add attribute array to sysdev classes Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 10/62] sysdev: Convert node driver Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 11/62] sysdev: Use sysdev_class attribute arrays in " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 12/62] sysdev: Add sysdev_create/remove_files Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 13/62] sysdev: Fix type of sysdev class attribute in memory driver Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 14/62] sysdev: fix missing s390 conversion Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 15/62] driver-core: Add attribute argument to class_attribute show/store Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 16/62] driver core: Add class_attr_string for simple read-only string Greg Kroah-Hartman
2010-03-02 23:28 ` Greg Kroah-Hartman [this message]
2010-03-02 23:28 ` [PATCH 18/62] Driver-Core: devtmpfs - reset inode permissions before unlinking Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 19/62] Driver-Core: devtmpfs - remove EXPERIMENTAL and enable it by default Greg Kroah-Hartman
2010-03-03 4:38 ` Eric W. Biederman
2010-03-03 16:46 ` Linus Torvalds
2010-03-03 20:03 ` Kay Sievers
2010-03-03 20:21 ` Eric W. Biederman
2010-03-03 22:01 ` Kay Sievers
2010-03-03 21:22 ` Greg KH
2010-03-03 21:48 ` Linus Torvalds
2010-03-03 22:04 ` Greg KH
2010-03-04 0:04 ` Linus Torvalds
2010-03-02 23:28 ` [PATCH 20/62] Driver-Core: disable /sbin/hotplug " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 21/62] Driver-Core: require valid action string in uevent trigger Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 22/62] sysfs: Cache the last sysfs_dirent to improve readdir scalability v2 Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 23/62] driver-core: firmware_class: remove base.h header inclusion Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 24/62] kobject: Constify struct kset_uevent_ops Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 25/62] HOWTO: Updates on subsystem trees, patchwork, -next (vs. -mm) Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 26/62] sysdev: fix up the probe/release attributes Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 27/62] Driver core: Constify struct sysfs_ops in struct kobj_type Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 28/62] Driver core: make struct platform_driver.id_table const Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 29/62] platform-drivers: move probe to .devinit.text in arch/arm Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 30/62] platform-drivers: move probe to .devinit.text in drivers/scsi Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 32/62] x86: move hp-wmi's probe function to .devinit.text Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 33/62] i2c: move i2c_omap's " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 34/62] w1: move omap_hdq's " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 35/62] media: move omap24xxcam's " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 36/62] auxdisplay: move cfag12864bfb's " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 37/62] net: move am79c961's " Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 38/62] UIO: Add a driver for Hilscher netX-based fieldbus cards Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 39/62] UIO: minor Kconfig fixes Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 40/62] UIO: Remove SMX Cryptengine driver Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 41/62] Driver core: Fix first line of kernel-doc for a few functions Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 42/62] sysfs: Remove sysfs_get/put_active_two Greg Kroah-Hartman
2010-03-03 1:34 ` Tejun Heo
2010-03-02 23:28 ` [PATCH 43/62] sysfs: Only take active references on attributes Greg Kroah-Hartman
2010-03-03 1:36 ` Tejun Heo
2010-03-02 23:28 ` [PATCH 44/62] sysfs: Use one lockdep class per sysfs attribute Greg Kroah-Hartman
2010-03-03 1:41 ` Tejun Heo
2010-03-02 23:28 ` [PATCH 45/62] sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on dynamic attributes Greg Kroah-Hartman
2010-03-03 1:41 ` Tejun Heo
2010-03-02 23:28 ` [PATCH 46/62] sysfs: Document sysfs_attr_init and sysfs_bin_attr_init Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 47/62] sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on module dynamic attributes Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 48/62] sysfs: windfarm: init sysfs attributes Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 49/62] sysfs: Serialize updates to the vfs inode Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 50/62] sysfs: Pack sysfs_dirent more tightly Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 51/62] sysfs: Implement sysfs_rename_link Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 52/62] driver core: Use sysfs_rename_link in device_rename Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 53/62] sysfs: Pass super_block to sysfs_get_inode Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 54/62] sysfs: Kill unused sysfs_sb variable Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 56/62] msi-laptop: Support standard ec 66/62 command on MSI notebook and nebook Greg Kroah-Hartman
2010-03-02 23:42 ` Matthew Garrett
2010-03-02 23:58 ` Greg KH
2010-03-03 13:47 ` Matthew Garrett
2010-03-02 23:28 ` [PATCH 57/62] msi-laptop: Add threeg sysfs file for support query 3G state by standard 66/62 ec command Greg Kroah-Hartman
2010-03-02 23:36 ` Matthew Garrett
2010-03-02 23:47 ` Greg KH
2010-03-03 13:46 ` Matthew Garrett
2010-03-02 23:28 ` [PATCH 58/62] msi-laptop: Support some MSI 3G netbook that is need load SCM Greg Kroah-Hartman
2010-03-02 23:39 ` Matthew Garrett
2010-03-02 23:46 ` Greg KH
2010-03-02 23:28 ` [PATCH 59/62] msi-laptop: Add resume method for set the SCM load again Greg Kroah-Hartman
2010-03-02 23:28 ` [PATCH 60/62] msi-laptop: Detect 3G device exists by standard ec command Greg Kroah-Hartman
2010-03-02 23:29 ` [PATCH 61/62] msi-laptop: depends on RFKILL Greg Kroah-Hartman
2010-03-03 6:09 ` Dmitry Torokhov
2010-03-03 21:23 ` Greg KH
2010-03-02 23:29 ` [PATCH 62/62] sysfs: fix for thinko with sysfs_bin_attr_init() Greg Kroah-Hartman
2010-03-08 14:12 ` [GIT PATCH] driver core patches for 2.6.33-git Greg KH
2010-03-08 17:28 ` Linus Torvalds
2010-03-08 17:33 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1267572541-410-17-git-send-email-gregkh@suse.de \
--to=gregkh@suse.de \
--cc=ak@linux.intel.com \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome