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 <lee@kernel.org>
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Link: https://patch.msgid.link/20260916161607.90106-2-dmantipov@yandex.ru
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
Dmitry Antipov 2026-09-16 19:16:07 +03:00 committed by Lee Jones
parent d229695f21
commit b18158f705

View File

@ -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);