[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7546990b-8060-9451-129a-19aaa856d2e1@linux.vnet.ibm.com>
Date: Tue, 1 Oct 2019 14:08:53 -0400
From: Nayna <nayna@...ux.vnet.ibm.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux-efi@...r.kernel.org,
Ard Biesheuvel <ard.biesheuvel@...aro.org>,
Eric Ricther <erichte@...ux.ibm.com>,
Nayna Jain <nayna@...ux.ibm.com>, linux-kernel@...r.kernel.org,
Mimi Zohar <zohar@...ux.ibm.com>,
Claudio Carvalho <cclaudio@...ux.ibm.com>,
Matthew Garret <matthew.garret@...ula.com>,
linuxppc-dev@...abs.org, Paul Mackerras <paulus@...ba.org>,
Jeremy Kerr <jk@...abs.org>,
Elaine Palmer <erpalmer@...ibm.com>,
"Oliver O'Halloran" <oohall@...il.com>,
linux-integrity@...r.kernel.org,
George Wilson <gcwilson@...ux.ibm.com>
Subject: Re: [PATCH] sysfs: add BIN_ATTR_WO() macro
Hi Greg,
On 08/26/2019 11:01 AM, Greg Kroah-Hartman wrote:
> 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@...ux.ibm.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> ---
>
> I'll queue this up to my tree for 5.4-rc1, but if you want to take this
> in your tree earlier, feel free to do so.
>
> include/linux/sysfs.h | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
> index 965236795750..5420817ed317 100644
> --- a/include/linux/sysfs.h
> +++ b/include/linux/sysfs.h
> @@ -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)
>
I am sorry. I didn't notice it via inspection but there is a bug in this
macro. When I actually try using it, compilation fails. Here's a likely
patch:
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index 5420817ed317..fa7ee503fb76 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -196,9 +196,9 @@ struct bin_attribute {
.size = _size, \
}
-#define __BIN_ATTR_WO(_name) { \
+#define __BIN_ATTR_WO(_name, _size) { \
.attr = { .name = __stringify(_name), .mode = 0200 }, \
- .store = _name##_store, \
+ .write = _name##_write, \
.size = _size, \
}
Thanks & Regards,
- Nayna
Powered by blists - more mailing lists