Re: [PATCH] sysfs: add BIN_ATTR_WO() macro

From: Michael Ellerman
Date: Mon Sep 02 2019 - 23:37:13 EST


Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:
> 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@xxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
>
> 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.

OK. This series is blocked on the firmware support going in, so at the
moment it might miss v5.4 anyway. So this going via your tree is no
problem.

If it does make it into v5.4 we can do a fixup patch to use the new
macro once everything's in Linus' tree.

cheers

> 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)
>
> --
> 2.23.0