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

From: Thorsten Blum

Date: Tue Apr 14 2026 - 11:46:59 EST


On Wed, Mar 18, 2026 at 09:37:39PM +0100, Peter Zijlstra wrote:
> 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@xxxxxxxxxx>
> > Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
> > ---
> > 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 :/

Is "faster and more direct" not a reason? There's nothing to format so
the format specifier is unnecessary and can be removed.