Replace sprintf() with sysfs_emit() in all sysfs attribute show
functions. sysfs_emit() is the preferred API for sysfs callbacks as
it is aware of the PAGE_SIZE buffer limit. No functional change.
Signed-off-by: Gabriel Rondon <grondon@gmail.com>
---
.../staging/iio/impedance-analyzer/ad5933.c | 24 +++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/staging/iio/impedance-analyzer/ad5933.c b/drivers/staging/iio/impedance-analyzer/ad5933.c
index 85a422329..f470d3966 100644
--- a/drivers/staging/iio/impedance-analyzer/ad5933.c
+++ b/drivers/staging/iio/impedance-analyzer/ad5933.c
@@ -285,7 +285,7 @@ static ssize_t ad5933_show_frequency(struct device *dev,
freqreg = (u64)freqreg * (u64)(st->mclk_hz / 4);
do_div(freqreg, BIT(27));
- return sprintf(buf, "%d\n", (int)freqreg);
+ return sysfs_emit(buf, "%d\n", (int)freqreg);
}
static ssize_t ad5933_store_frequency(struct device *dev,
@@ -338,27 +338,27 @@ static ssize_t ad5933_show(struct device *dev,
mutex_lock(&st->lock);
switch ((u32)this_attr->address) {
case AD5933_OUT_RANGE:
- len = sprintf(buf, "%u\n",
- st->range_avail[(st->ctrl_hb >> 1) & 0x3]);
+ len = sysfs_emit(buf, "%u\n",
+ st->range_avail[(st->ctrl_hb >> 1) & 0x3]);
break;
case AD5933_OUT_RANGE_AVAIL:
- len = sprintf(buf, "%u %u %u %u\n", st->range_avail[0],
- st->range_avail[3], st->range_avail[2],
- st->range_avail[1]);
+ len = sysfs_emit(buf, "%u %u %u %u\n", st->range_avail[0],
+ st->range_avail[3], st->range_avail[2],
+ st->range_avail[1]);
break;
case AD5933_OUT_SETTLING_CYCLES:
- len = sprintf(buf, "%d\n", st->settling_cycles);
+ len = sysfs_emit(buf, "%d\n", st->settling_cycles);
break;
case AD5933_IN_PGA_GAIN:
- len = sprintf(buf, "%s\n",
- (st->ctrl_hb & AD5933_CTRL_PGA_GAIN_1) ?
- "1" : "0.2");
+ len = sysfs_emit(buf, "%s\n",
+ (st->ctrl_hb & AD5933_CTRL_PGA_GAIN_1) ?
+ "1" : "0.2");
break;
case AD5933_IN_PGA_GAIN_AVAIL:
- len = sprintf(buf, "1 0.2\n");
+ len = sysfs_emit(buf, "1 0.2\n");
break;
case AD5933_FREQ_POINTS:
- len = sprintf(buf, "%d\n", st->freq_points);
+ len = sysfs_emit(buf, "%d\n", st->freq_points);
break;
default:
ret = -EINVAL;
--
2.33.0
On Thu, Mar 19, 2026 at 10:57:18PM +0000, Gabriel Rondon wrote:
> Replace sprintf() with sysfs_emit() in all sysfs attribute show
> functions. sysfs_emit() is the preferred API for sysfs callbacks as
> it is aware of the PAGE_SIZE buffer limit. No functional change.
...
> - return sprintf(buf, "%d\n", (int)freqreg);
> + return sysfs_emit(buf, "%d\n", (int)freqreg);
Why casting? Can you also address that by using the correct specifier
instead of %d?
...
> switch ((u32)this_attr->address) {
> case AD5933_OUT_RANGE:
> - len = sprintf(buf, "%u\n",
> - st->range_avail[(st->ctrl_hb >> 1) & 0x3]);
> + len = sysfs_emit(buf, "%u\n",
> + st->range_avail[(st->ctrl_hb >> 1) & 0x3]);
> break;
> case AD5933_OUT_RANGE_AVAIL:
> - len = sprintf(buf, "%u %u %u %u\n", st->range_avail[0],
> - st->range_avail[3], st->range_avail[2],
> - st->range_avail[1]);
> + len = sysfs_emit(buf, "%u %u %u %u\n", st->range_avail[0],
> + st->range_avail[3], st->range_avail[2],
> + st->range_avail[1]);
> break;
> case AD5933_OUT_SETTLING_CYCLES:
> - len = sprintf(buf, "%d\n", st->settling_cycles);
> + len = sysfs_emit(buf, "%d\n", st->settling_cycles);
> break;
> case AD5933_IN_PGA_GAIN:
> - len = sprintf(buf, "%s\n",
> - (st->ctrl_hb & AD5933_CTRL_PGA_GAIN_1) ?
> - "1" : "0.2");
> + len = sysfs_emit(buf, "%s\n",
> + (st->ctrl_hb & AD5933_CTRL_PGA_GAIN_1) ?
> + "1" : "0.2");
> break;
> case AD5933_IN_PGA_GAIN_AVAIL:
> - len = sprintf(buf, "1 0.2\n");
> + len = sysfs_emit(buf, "1 0.2\n");
> break;
> case AD5933_FREQ_POINTS:
> - len = sprintf(buf, "%d\n", st->freq_points);
> + len = sysfs_emit(buf, "%d\n", st->freq_points);
> break;
I believe the entire function should be resplit to use a unique one
for each sysfs node. Also IIO has different approaches for static lists
in the _avail nodes.
--
With Best Regards,
Andy Shevchenko
© 2016 - 2026 Red Hat, Inc.