[PATCH RESEND] locking/lockdep: Replace snprintf with strscpy in seq_stats

Thorsten Blum posted 1 patch 2 weeks, 2 days ago
kernel/locking/lockdep_proc.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
[PATCH RESEND] locking/lockdep: Replace snprintf with strscpy in seq_stats
Posted by Thorsten Blum 2 weeks, 2 days ago
Replace snprintf("%s", ...) with the faster and more direct strscpy().

Reviewed-by: Waiman Long <longman@redhat.com>
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 kernel/locking/lockdep_proc.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
index 1916db9aa46b..e458fa258d05 100644
--- a/kernel/locking/lockdep_proc.c
+++ b/kernel/locking/lockdep_proc.c
@@ -19,6 +19,7 @@
 #include <linux/debug_locks.h>
 #include <linux/vmalloc.h>
 #include <linux/sort.h>
+#include <linux/string.h>
 #include <linux/uaccess.h>
 #include <asm/div64.h>
 
@@ -488,9 +489,9 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
 		const char *key_name;
 
 		key_name = __get_key_name(ckey, str);
-		snprintf(name, namelen, "%s", key_name);
+		strscpy(name, key_name, namelen);
 	} else {
-		snprintf(name, namelen, "%s", cname);
+		strscpy(name, cname, namelen);
 	}
 	rcu_read_unlock_sched();
Re: [PATCH RESEND] locking/lockdep: Replace snprintf with strscpy in seq_stats
Posted by Peter Zijlstra 2 weeks, 1 day ago
On Wed, Mar 18, 2026 at 01:14:27AM +0100, Thorsten Blum wrote:
> Replace snprintf("%s", ...) with the faster and more direct strscpy().
> 
> Reviewed-by: Waiman Long <longman@redhat.com>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>  kernel/locking/lockdep_proc.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
> index 1916db9aa46b..e458fa258d05 100644
> --- a/kernel/locking/lockdep_proc.c
> +++ b/kernel/locking/lockdep_proc.c
> @@ -19,6 +19,7 @@
>  #include <linux/debug_locks.h>
>  #include <linux/vmalloc.h>
>  #include <linux/sort.h>
> +#include <linux/string.h>
>  #include <linux/uaccess.h>
>  #include <asm/div64.h>
>  
> @@ -488,9 +489,9 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
>  		const char *key_name;
>  
>  		key_name = __get_key_name(ckey, str);
> -		snprintf(name, namelen, "%s", key_name);
> +		strscpy(name, key_name, namelen);
>  	} else {
> -		snprintf(name, namelen, "%s", cname);
> +		strscpy(name, cname, namelen);
>  	}
>  	rcu_read_unlock_sched();

Why though? I suppose it doesn't matter, but this hardly seems worth the
electrons is was sent with :/
Re: [PATCH RESEND] locking/lockdep: Replace snprintf with strscpy in seq_stats
Posted by Waiman Long 2 weeks, 1 day ago
On 3/17/26 8:14 PM, Thorsten Blum wrote:
> Replace snprintf("%s", ...) with the faster and more direct strscpy().
>
> Reviewed-by: Waiman Long <longman@redhat.com>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>   kernel/locking/lockdep_proc.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
> index 1916db9aa46b..e458fa258d05 100644
> --- a/kernel/locking/lockdep_proc.c
> +++ b/kernel/locking/lockdep_proc.c
> @@ -19,6 +19,7 @@
>   #include <linux/debug_locks.h>
>   #include <linux/vmalloc.h>
>   #include <linux/sort.h>
> +#include <linux/string.h>
>   #include <linux/uaccess.h>
>   #include <asm/div64.h>
>   
> @@ -488,9 +489,9 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
>   		const char *key_name;
>   
>   		key_name = __get_key_name(ckey, str);
> -		snprintf(name, namelen, "%s", key_name);
> +		strscpy(name, key_name, namelen);
>   	} else {
> -		snprintf(name, namelen, "%s", cname);
> +		strscpy(name, cname, namelen);
>   	}
>   	rcu_read_unlock_sched();
>   
>
Acked-by: Waiman Long <longman@redhat.com>
Re: [PATCH RESEND] locking/lockdep: Replace snprintf with strscpy in seq_stats
Posted by Boqun Feng 2 weeks, 1 day ago
On Wed, Mar 18, 2026 at 11:43:49AM -0400, Waiman Long wrote:
> 
> On 3/17/26 8:14 PM, Thorsten Blum wrote:
> > Replace snprintf("%s", ...) with the faster and more direct strscpy().
> > 
> > Reviewed-by: Waiman Long <longman@redhat.com>
> > Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> > ---
> >   kernel/locking/lockdep_proc.c | 5 +++--
> >   1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
> > index 1916db9aa46b..e458fa258d05 100644
> > --- a/kernel/locking/lockdep_proc.c
> > +++ b/kernel/locking/lockdep_proc.c
> > @@ -19,6 +19,7 @@
> >   #include <linux/debug_locks.h>
> >   #include <linux/vmalloc.h>
> >   #include <linux/sort.h>
> > +#include <linux/string.h>
> >   #include <linux/uaccess.h>
> >   #include <asm/div64.h>
> > @@ -488,9 +489,9 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
> >   		const char *key_name;
> >   		key_name = __get_key_name(ckey, str);
> > -		snprintf(name, namelen, "%s", key_name);
> > +		strscpy(name, key_name, namelen);
> >   	} else {
> > -		snprintf(name, namelen, "%s", cname);
> > +		strscpy(name, cname, namelen);
> >   	}
> >   	rcu_read_unlock_sched();
> > 
> Acked-by: Waiman Long <longman@redhat.com>
> 

Queued, thank you both!

Regards,
Boqun