[PATCH 2/2] sh: sq: use sysfs_emit_at() in mapping_show
From: Thorsten Blum
Date: Fri Apr 24 2026 - 08:11:24 EST
Replace sprintf() with sysfs_emit_at() in mapping_show().
sysfs_emit_at() is preferred for formatting sysfs output because it
provides safer bounds checking and avoids manual buffer size accounting.
Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
---
arch/sh/kernel/cpu/sh4/sq.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c
index 908a8e09113b..50e7df13fcc2 100644
--- a/arch/sh/kernel/cpu/sh4/sq.c
+++ b/arch/sh/kernel/cpu/sh4/sq.c
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
+#include <linux/sysfs.h>
#include <linux/vmalloc.h>
#include <linux/mm.h>
#include <linux/io.h>
@@ -289,14 +290,14 @@ static ssize_t sq_sysfs_store(struct kobject *kobj, struct attribute *attr,
static ssize_t mapping_show(char *buf)
{
struct sq_mapping **list, *entry;
- char *p = buf;
+ ssize_t len = 0;
for (list = &sq_mapping_list; (entry = *list); list = &entry->next)
- p += sprintf(p, "%08lx-%08lx [%08lx]: %s\n",
- entry->sq_addr, entry->sq_addr + entry->size,
- entry->addr, entry->name);
+ len += sysfs_emit_at(buf, len, "%08lx-%08lx [%08lx]: %s\n",
+ entry->sq_addr, entry->sq_addr + entry->size,
+ entry->addr, entry->name);
- return p - buf;
+ return len;
}
static ssize_t mapping_store(const char *buf, size_t count)