[PATCH 2/2] sh: sq: use sysfs_emit_at() in mapping_show
Thorsten Blum <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- 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)