From b18158f705dcff53f76f37733dea5154f1b32444 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 16 Sep 2026 19:16:07 +0300 Subject: [PATCH] leds: flash: Simplify flash_fault_show() Do not emit extra trailing space and use sysfs_emit_at() over sprintf()/strcat()/strlen() in flash_fault_show(). Suggested-by: Lee Jones Signed-off-by: Dmitry Antipov Link: https://patch.msgid.link/20260916161607.90106-2-dmantipov@yandex.ru Signed-off-by: Lee Jones --- drivers/leds/led-class-flash.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/leds/led-class-flash.c b/drivers/leds/led-class-flash.c index 3bb90823de1a..181dfd49c6ad 100644 --- a/drivers/leds/led-class-flash.c +++ b/drivers/leds/led-class-flash.c @@ -188,25 +188,22 @@ static ssize_t flash_fault_show(struct device *dev, struct led_classdev *led_cdev = dev_get_drvdata(dev); struct led_classdev_flash *fled_cdev = lcdev_to_flcdev(led_cdev); u32 fault = 0, mask = 0x1; - char *pbuf = buf; - int i, ret, buf_len; + int i, ret; ret = led_get_flash_fault(fled_cdev, &fault); if (ret < 0) return -EINVAL; - *buf = '\0'; - - for (i = 0; i < LED_NUM_FLASH_FAULTS; ++i) { - if (fault & mask) { - buf_len = sprintf(pbuf, "%s ", - led_flash_fault_names[i]); - pbuf += buf_len; - } + for (ret = 0, i = 0; i < LED_NUM_FLASH_FAULTS; ++i) { + if (fault & mask) + ret += sysfs_emit_at(buf, ret, "%s%s", + (ret ? " " : ""), + led_flash_fault_names[i]); mask <<= 1; } - return strlen(strcat(buf, "\n")); + ret += sysfs_emit_at(buf, ret, "\n"); + return ret; } static DEVICE_ATTR_RO(flash_fault);