iio: iio_enum_available_read(): Convert to sysfs_emit_at()
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 20 Mar 2021 07:14:03 +0000 (08:14 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 29 Mar 2021 10:12:30 +0000 (11:12 +0100)
sysfs_emit() is preferred over raw s*printf() for sysfs attributes since it
knows about the sysfs buffer specifics and has some built-in sanity checks.

Convert the iio_enum_available_read() function to use sysfs_emit_at()
instead of scnprintf().

The conversion is straight forward, the only difference is that
sysfs_emit_at() takes the buffers start address and an offset as parameters
and already knows about the buffer's size limit.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Link: https://lore.kernel.org/r/20210320071405.9347-3-lars@metafoo.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/industrialio-core.c

index 058874a..e0fdf91 100644 (file)
@@ -504,7 +504,7 @@ ssize_t iio_enum_available_read(struct iio_dev *indio_dev,
        for (i = 0; i < e->num_items; ++i) {
                if (!e->items[i])
                        continue;
-               len += scnprintf(buf + len, PAGE_SIZE - len, "%s ", e->items[i]);
+               len += sysfs_emit_at(buf, len, "%s ", e->items[i]);
        }
 
        /* replace last space with a newline */