[PATCH linux-next] genirq: use sysfs_emit() instead of scnprintf().

xie.ludan@zte.com.cn posted 1 patch 9 months ago
kernel/irq/irqdesc.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
[PATCH linux-next] genirq: use sysfs_emit() instead of scnprintf().
Posted by xie.ludan@zte.com.cn 9 months ago
Date: Fri, 14 Mar 2025 12:05:36 +0800

Follow the advice in Documentation/filesystems/sysfs.rst:
show() should only use sysfs_emit() or sysfs_emit_at() when formatting
the value to be returned to user space.

Signed-off-by: XieLudan <xie.ludan@zte.com.cn>
---
 kernel/irq/irqdesc.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 287830739783..8ffe12fe5af6 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -257,11 +257,11 @@ static ssize_t per_cpu_count_show(struct kobject *kobj,
 	for_each_possible_cpu(cpu) {
 		unsigned int c = irq_desc_kstat_cpu(desc, cpu);

-		ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%s%u", p, c);
+		ret += sysfs_emit(buf + ret, "%s%u", p, c);
 		p = ",";
 	}

-	ret += scnprintf(buf + ret, PAGE_SIZE - ret, "\n");
+	ret += sysfs_emit(buf + ret, "\n");
 	return ret;
 }
 IRQ_ATTR_RO(per_cpu_count);
@@ -274,7 +274,7 @@ static ssize_t chip_name_show(struct kobject *kobj,

 	raw_spin_lock_irq(&desc->lock);
 	if (desc->irq_data.chip && desc->irq_data.chip->name) {
-		ret = scnprintf(buf, PAGE_SIZE, "%s\n",
+		ret = sysfs_emit(buf, "%s\n",
 				desc->irq_data.chip->name);
 	}
 	raw_spin_unlock_irq(&desc->lock);
@@ -337,7 +337,7 @@ static ssize_t name_show(struct kobject *kobj,

 	raw_spin_lock_irq(&desc->lock);
 	if (desc->name)
-		ret = scnprintf(buf, PAGE_SIZE, "%s\n", desc->name);
+		ret = sysfs_emit(buf, "%s\n", desc->name);
 	raw_spin_unlock_irq(&desc->lock);

 	return ret;
@@ -354,14 +354,14 @@ static ssize_t actions_show(struct kobject *kobj,

 	raw_spin_lock_irq(&desc->lock);
 	for_each_action_of_desc(desc, action) {
-		ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%s%s",
+		ret += sysfs_emit(buf + ret, "%s%s",
 				 p, action->name);
 		p = ",";
 	}
 	raw_spin_unlock_irq(&desc->lock);

 	if (ret)
-		ret += scnprintf(buf + ret, PAGE_SIZE - ret, "\n");
+		ret += sysfs_emit(buf + ret, "\n");

 	return ret;
 }
-- 
2.25.1
Re: [PATCH linux-next] genirq: use sysfs_emit() instead of scnprintf().
Posted by Jiri Slaby 9 months ago
On 17. 03. 25, 7:27, xie.ludan@zte.com.cn wrote:
> Date: Fri, 14 Mar 2025 12:05:36 +0800
> 
> Follow the advice in Documentation/filesystems/sysfs.rst:
> show() should only use sysfs_emit() or sysfs_emit_at() when formatting
> the value to be returned to user space.
> 
> Signed-off-by: XieLudan <xie.ludan@zte.com.cn>

I point you to study Documentation/process/submitting-patches.rst first.

In particular, I am missing versioning and versionlog.

I would also appreciate being CCed on next versions of patches I am 
reviewing.

> --- a/kernel/irq/irqdesc.c
> +++ b/kernel/irq/irqdesc.c
> @@ -257,11 +257,11 @@ static ssize_t per_cpu_count_show(struct kobject *kobj,
>   	for_each_possible_cpu(cpu) {
>   		unsigned int c = irq_desc_kstat_cpu(desc, cpu);
> 
> -		ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%s%u", p, c);
> +		ret += sysfs_emit(buf + ret, "%s%u", p, c);

Sadly, the more important concern I had remained.

regards,
-- 
js
suse labs