]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
staging: greybus: loopback: use sysfs_emit in sysfs show functions
authorLuis Soza Rodriguez <luistermc789@gmail.com>
Mon, 9 Mar 2026 23:05:07 +0000 (17:05 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Mar 2026 15:48:48 +0000 (16:48 +0100)
As per the kernel's documentation, sysfs_emit() is the preferred way
to format strings for sysfs attributes. It handles buffer overruns
safely. Replace sprintf calls with sysfs_emit across all loopback
sysfs show macros.

Signed-off-by: Luis Soza Rodriguez <contact@sluisr.com>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/20260309230507.4931-1-contact@sluisr.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/greybus/loopback.c

index aa9c73cb0ae5aa2739a0d42a807c6080ccd38243..3a502d89d19f69879b84733f7f4c67d525515fb7 100644 (file)
@@ -125,7 +125,7 @@ static ssize_t field##_show(struct device *dev,                     \
                            char *buf)                                  \
 {                                                                      \
        struct gb_loopback *gb = dev_get_drvdata(dev);                  \
-       return sprintf(buf, "%u\n", gb->field);                 \
+       return sysfs_emit(buf, "%u\n", gb->field);                      \
 }                                                                      \
 static DEVICE_ATTR_RO(field)
 
@@ -137,8 +137,8 @@ static ssize_t name##_##field##_show(struct device *dev,    \
        struct gb_loopback *gb = dev_get_drvdata(dev);                  \
        /* Report 0 for min and max if no transfer succeeded */         \
        if (!gb->requests_completed)                                    \
-               return sprintf(buf, "0\n");                             \
-       return sprintf(buf, "%" #type "\n", gb->name.field);            \
+               return sysfs_emit(buf, "0\n");                          \
+       return sysfs_emit(buf, "%" #type "\n", gb->name.field);         \
 }                                                                      \
 static DEVICE_ATTR_RO(name##_##field)
 
@@ -158,7 +158,7 @@ static ssize_t name##_avg_show(struct device *dev,          \
        rem = do_div(avg, count);                                       \
        rem *= 1000000;                                                 \
        do_div(rem, count);                                             \
-       return sprintf(buf, "%llu.%06u\n", avg, (u32)rem);              \
+       return sysfs_emit(buf, "%llu.%06u\n", avg, (u32)rem);           \
 }                                                                      \
 static DEVICE_ATTR_RO(name##_avg)
 
@@ -173,7 +173,7 @@ static ssize_t field##_show(struct device *dev,                             \
                            char *buf)                                  \
 {                                                                      \
        struct gb_loopback *gb = dev_get_drvdata(dev);                  \
-       return sprintf(buf, "%" #type "\n", gb->field);                 \
+       return sysfs_emit(buf, "%" #type "\n", gb->field);                      \
 }                                                                      \
 static ssize_t field##_store(struct device *dev,                       \
                            struct device_attribute *attr,              \
@@ -199,7 +199,7 @@ static ssize_t field##_show(struct device *dev,             \
                            char *buf)                                  \
 {                                                                      \
        struct gb_loopback *gb = dev_get_drvdata(dev);                  \
-       return sprintf(buf, "%u\n", gb->field);                         \
+       return sysfs_emit(buf, "%u\n", gb->field);                              \
 }                                                                      \
 static DEVICE_ATTR_RO(field)
 
@@ -209,7 +209,7 @@ static ssize_t field##_show(struct device *dev,                             \
                            char *buf)                                  \
 {                                                                      \
        struct gb_loopback *gb = dev_get_drvdata(dev);                  \
-       return sprintf(buf, "%" #type "\n", gb->field);                 \
+       return sysfs_emit(buf, "%" #type "\n", gb->field);                      \
 }                                                                      \
 static ssize_t field##_store(struct device *dev,                       \
                            struct device_attribute *attr,              \