Subject: [PATCH] [3/4] Introduce _SYSDEV_ATTR

From: Olof Johansson <[email-masked]>
Date: Sun, 28 Jan 2007 21:24:57 -0600

Introduce _SYSDEV_ATTR(), to be used to just define the struct, and not a
named variable with the attribute. Useful for arrays of sysdev_attributes.

Signed-off-by: Olof Johansson <[email-masked]>
Signed-off-by: Greg Kroah-Hartman <[email-masked]>                                              

Index: merge/include/linux/sysdev.h
===================================================================
--- merge.orig/include/linux/sysdev.h
+++ merge/include/linux/sysdev.h
@@ -98,12 +98,16 @@ struct sysdev_attribute { 
 };

-#define SYSDEV_ATTR(_name,_mode,_show,_store) 		\
-struct sysdev_attribute attr_##_name = { 			\
-	.attr = {.name = __stringify(_name), .mode = _mode },	\
+#define _SYSDEV_ATTR(_name,_mode,_show,_store)			\
+{								\
+	.attr = { .name = __stringify(_name), .mode = _mode,	\
+		 .owner = THIS_MODULE },			\
 	.show	= _show,					\
 	.store	= _store,					\
-};
+}
+
+#define SYSDEV_ATTR(_name,_mode,_show,_store)		\
+struct sysdev_attribute attr_##_name = _SYSDEV_ATTR(_name,_mode,_show,_store);
 
 extern int sysdev_create_file(struct sys_device *, struct sysdev_attribute *);
 extern void sysdev_remove_file(struct sys_device *, struct sysdev_attribute *);