Re: [PATCH v2 1/3] sysfs: constify bin_attribute argument of sysfs_bin_attr_simple_read()

Madhavan Srinivasan
2025-01-06T11:20:49Z

On 12/28/24 2:13 PM, Thomas Weißschuh wrote:
> Most users use this function through the BIN_ATTR_SIMPLE* macros,
> they can handle the switch transparently.
> Also adapt the two non-macro users in the same change.

Changes looks fine to me.

Acked-by: Madhavan Srinivasan <maddy@linux.ibm.com>

>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> arch/powerpc/platforms/powernv/opal.c | 2 +-
> fs/sysfs/file.c | 2 +-
> include/linux/sysfs.h | 4 ++--
> kernel/module/sysfs.c | 2 +-
> 4 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
> index 5d0f35bb917ebced8c741cd3af2c511949a1d2ef..013637e2b2a8e6a4ec6b93a520f8d5d9d3245467 100644
> --- a/arch/powerpc/platforms/powernv/opal.c
> +++ b/arch/powerpc/platforms/powernv/opal.c
> @@ -818,7 +818,7 @@ static int opal_add_one_export(struct kobject *parent, const char *export_name,
> sysfs_bin_attr_init(attr);
> attr->attr.name = name;
> attr->attr.mode = 0400;
> - attr->read = sysfs_bin_attr_simple_read;
> + attr->read_new = sysfs_bin_attr_simple_read;
> attr->private = __va(vals[0]);
> attr->size = vals[1];
>
> diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
> index 785408861c01c89fc84c787848243a13c1338367..6931308876c4ac3b4c19878d5e1158ad8fe4f16f 100644
> --- a/fs/sysfs/file.c
> +++ b/fs/sysfs/file.c
> @@ -817,7 +817,7 @@ EXPORT_SYMBOL_GPL(sysfs_emit_at);
> * Returns number of bytes written to @buf.
> */
> ssize_t sysfs_bin_attr_simple_read(struct file *file, struct kobject *kobj,
> - struct bin_attribute *attr, char *buf,
> + const struct bin_attribute *attr, char *buf,
> loff_t off, size_t count)
> {
> memcpy(buf, attr->private + off, count);
> diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
> index 0f2fcd244523f050c5286f19d4fe1846506f9214..2205561159afdb57d0a250bb0439b28c01d9010e 100644
> --- a/include/linux/sysfs.h
> +++ b/include/linux/sysfs.h
> @@ -511,7 +511,7 @@ __printf(3, 4)
> int sysfs_emit_at(char *buf, int at, const char *fmt, ...);
>
> ssize_t sysfs_bin_attr_simple_read(struct file *file, struct kobject *kobj,
> - struct bin_attribute *attr, char *buf,
> + const struct bin_attribute *attr, char *buf,
> loff_t off, size_t count);
>
> #else /* CONFIG_SYSFS */
> @@ -774,7 +774,7 @@ static inline int sysfs_emit_at(char *buf, int at, const char *fmt, ...)
>
> static inline ssize_t sysfs_bin_attr_simple_read(struct file *file,
> struct kobject *kobj,
> - struct bin_attribute *attr,
> + const struct bin_attribute *attr,
> char *buf, loff_t off,
> size_t count)
> {
> diff --git a/kernel/module/sysfs.c b/kernel/module/sysfs.c
> index 456358e1fdc43e6b5b24f383bbefa37812971174..254017b58b645d4afcf6876d29bcc2e2113a8dc4 100644
> --- a/kernel/module/sysfs.c
> +++ b/kernel/module/sysfs.c
> @@ -196,7 +196,7 @@ static int add_notes_attrs(struct module *mod, const struct load_info *info)
> nattr->attr.mode = 0444;
> nattr->size = info->sechdrs[i].sh_size;
> nattr->private = (void *)info->sechdrs[i].sh_addr;
> - nattr->read = sysfs_bin_attr_simple_read;
> + nattr->read_new = sysfs_bin_attr_simple_read;
> ++nattr;
> }
> ++loaded;
>