On 11-07-13 02:36, Greg Kroah-Hartman wrote:
To make it easier for driver subsystems to work with attribute groups,
create the ATTRIBUTE_GROUPS macro to remove some of the repetitive
typing for the most common use for attribute groups.
Forgot to add this trivial little cleanup patch with my previous mail, I know you don't like patch dependancies, but this one depends on the previous one as that included stat.h, if you decide my previous patch isn't good, i can redo this one with stat.h included (and move atomic.h to the top to keep includes alphabetically ordered).

Oliver

Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
  include/linux/sysfs.h | 9 +++++++++
  1 file changed, 9 insertions(+)

diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index 9cd20c8..f62ff01 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -94,6 +94,15 @@ struct attribute_group {
  #define __ATTR_IGNORE_LOCKDEP __ATTR
  #endif

+#define ATTRIBUTE_GROUPS(name)                                 \
+static const struct attribute_group name##_group = {           \
+       .attrs = name##_attrs,                                  \
+};                                                             \
+static const struct attribute_group *name##_groups[] = {       \
+       &name##_group,                                              \
+       NULL,                                                   \
+}
+
  #define attr_name(_attr) (_attr).attr.name

  struct file;


>From a67de9f026363ce821c72a807d98830abece3cf7 Mon Sep 17 00:00:00 2001
From: Oliver Schinagl <oli...@schinagl.nl>
Date: Thu, 11 Jul 2013 13:57:42 +0200
Subject: [PATCH] sysfs: use file mode defines from stat.h

With the last patches stat.h was included to the header, and thus those
permission defines should be used.

Signed-off-by: Oliver Schinagl <oli...@schinagl.nl>
---
 include/linux/sysfs.h | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index 0ebed11..8f820c7 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -69,18 +69,19 @@ struct attribute_group {
  * for examples..
  */
 
-#define __ATTR(_name,_mode,_show,_store) { \
-	.attr = {.name = __stringify(_name), .mode = _mode },	\
-	.show	= _show,					\
-	.store	= _store,					\
+#define __ATTR(_name,_mode,_show,_store) { 				\
+	.attr = {.name = __stringify(_name), .mode = _mode },		\
+	.show	= _show,						\
+	.store	= _store,						\
 }
 
-#define __ATTR_RO(_name) { \
-	.attr	= { .name = __stringify(_name), .mode = 0444 },	\
-	.show	= _name##_show,					\
+#define __ATTR_RO(_name) {						\
+	.attr	= { .name = __stringify(_name), .mode = S_IRUGO },	\
+	.show	= _name##_show,						\
 }
 
-#define __ATTR_RW(_name) __ATTR(_name, 0644, _name##_show, _name##_store)
+#define __ATTR_RW(_name) __ATTR(_name, (S_IWUSR | S_IRUGO),		\
+			 _name##_show, _name##_store)
 
 #define __ATTR_NULL { .attr = { .name = NULL } }
 
-- 
1.8.1.5

Reply via email to