Re: [PATCH] staging: iio: adc: ad7816: Replace sprintf() with sysfs_emit()
From: Jonathan Cameron
Date: Fri Apr 24 2026 - 13:03:54 EST
On Fri, 24 Apr 2026 23:06:17 +0800
kunjinkao-os <kunjinkao.jp@xxxxxxxxx> wrote:
> sysfs_emit() is the preferred function for sysfs show callbacks as it
> is aware of the PAGE_SIZE buffer and prevents potential buffer overflows.
> No functional change intended.
>
> Signed-off-by: kunjinkao-os <kunjinkao.jp@xxxxxxxxx>
Before sending a patch out, check if anyone else is working on the same code.
Currently this is the 3rd instance of the same thing. I think
the first one was in this series:
https://lore.kernel.org/all/20260331072453.6530-1-mdmahmudulhasan1511@xxxxxxxxx/
> ---
> drivers/staging/iio/adc/ad7816.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
> index 172acf135f3b..0e32a2295990 100644
> --- a/drivers/staging/iio/adc/ad7816.c
> +++ b/drivers/staging/iio/adc/ad7816.c
> @@ -124,8 +124,8 @@ static ssize_t ad7816_show_mode(struct device *dev,
> struct ad7816_chip_info *chip = iio_priv(indio_dev);
>
> if (chip->mode)
> - return sprintf(buf, "power-save\n");
> - return sprintf(buf, "full\n");
> + return sysfs_emit(buf, "power-save\n");
> + return sysfs_emit(buf, "full\n");
> }
>
> static ssize_t ad7816_store_mode(struct device *dev,
> @@ -156,7 +156,7 @@ static ssize_t ad7816_show_available_modes(struct device *dev,
> struct device_attribute *attr,
> char *buf)
> {
> - return sprintf(buf, "full\npower-save\n");
> + return sysfs_emit(buf, "full\npower-save\n");
> }
>
> static IIO_DEVICE_ATTR(available_modes, 0444, ad7816_show_available_modes,
> @@ -169,7 +169,7 @@ static ssize_t ad7816_show_channel(struct device *dev,
> struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> struct ad7816_chip_info *chip = iio_priv(indio_dev);
>
> - return sprintf(buf, "%d\n", chip->channel_id);
> + return sysfs_emit(buf, "%d\n", chip->channel_id);
> }
>
> static ssize_t ad7816_store_channel(struct device *dev,
> @@ -231,9 +231,9 @@ static ssize_t ad7816_show_value(struct device *dev,
> data &= AD7816_TEMP_FLOAT_MASK;
> if (value < 0)
> data = BIT(AD7816_TEMP_FLOAT_OFFSET) - data;
> - return sprintf(buf, "%d.%.2d\n", value, data * 25);
> + return sysfs_emit(buf, "%d.%.2d\n", value, data * 25);
> }
> - return sprintf(buf, "%u\n", data);
> + return sysfs_emit(buf, "%u\n", data);
> }
>
> static IIO_DEVICE_ATTR(value, 0444, ad7816_show_value, NULL, 0);
> @@ -281,9 +281,9 @@ static ssize_t ad7816_show_oti(struct device *dev,
> value = AD7816_BOUND_VALUE_MIN +
> (chip->oti_data[chip->channel_id] -
> AD7816_BOUND_VALUE_BASE);
> - return sprintf(buf, "%d\n", value);
> + return sysfs_emit(buf, "%d\n", value);
> }
> - return sprintf(buf, "%u\n", chip->oti_data[chip->channel_id]);
> + return sysfs_emit(buf, "%u\n", chip->oti_data[chip->channel_id]);
> }
>
> static inline ssize_t ad7816_set_oti(struct device *dev,