sysfs: add BIN_ATTR_WO() macro
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 Aug 2019 15:01:53 +0000 (17:01 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Sep 2019 11:37:17 +0000 (13:37 +0200)
This variant was missing from sysfs.h, I guess no one noticed it before.

Turns out the powerpc secure variable code can use it, so add it to the
tree for it, and potentially others to take advantage of, instead of
open-coding it.

Reported-by: Nayna Jain <nayna@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20190826150153.GD18418@kroah.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/sysfs.h

index 965236795750ae1d43482e294209d4e14c2ac113..5420817ed317ebf3642758dd950d3994458eb977 100644 (file)
@@ -196,6 +196,12 @@ struct bin_attribute {
        .size   = _size,                                                \
 }
 
+#define __BIN_ATTR_WO(_name) {                                         \
+       .attr   = { .name = __stringify(_name), .mode = 0200 },         \
+       .store  = _name##_store,                                        \
+       .size   = _size,                                                \
+}
+
 #define __BIN_ATTR_RW(_name, _size)                                    \
        __BIN_ATTR(_name, 0644, _name##_read, _name##_write, _size)
 
@@ -208,6 +214,9 @@ struct bin_attribute bin_attr_##_name = __BIN_ATTR(_name, _mode, _read,     \
 #define BIN_ATTR_RO(_name, _size)                                      \
 struct bin_attribute bin_attr_##_name = __BIN_ATTR_RO(_name, _size)
 
+#define BIN_ATTR_WO(_name, _size)                                      \
+struct bin_attribute bin_attr_##_name = __BIN_ATTR_WO(_name, _size)
+
 #define BIN_ATTR_RW(_name, _size)                                      \
 struct bin_attribute bin_attr_##_name = __BIN_ATTR_RW(_name, _size)