public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tracing: remove __printf() attribute on __ftrace_vbprintk()
@ 2026-02-02  9:58 Arnd Bergmann
  2026-02-02 11:37 ` Jeff Layton
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Arnd Bergmann @ 2026-02-02  9:58 UTC (permalink / raw)
  To: Steven Rostedt, Masami Hiramatsu, Simon Horman, Jeff Layton,
	Anna Schumaker, Chuck Lever
  Cc: Arnd Bergmann, Mathieu Desnoyers, Andrew Morton, Andy Shevchenko,
	Randy Dunlap, Yury Norov, Joel Fernandes, linux-kernel,
	linux-trace-kernel

From: Arnd Bergmann <arnd@arndb.de>

The sunrpc change to use trace_printk() for debugging caused
a new warning for every instance of dprintk() in some configurations,
when -Wformat-security is enabled:

fs/nfs/getroot.c: In function 'nfs_get_root':
fs/nfs/getroot.c:90:17: error: format not a string literal and no format arguments [-Werror=format-security]
   90 |                 nfs_errorf(fc, "NFS: Couldn't getattr on root");

I've been slowly chipping away at those warnings over time with the
intention of enabling them by default in the future. While I could not
figure out why this only happens for this one instance, I see that the
__trace_bprintk() function is always called with a local variable as
the format string, rather than a literal.

Remove the __printf(2,3) annotation on this function, as this is can
only be validated for literals. The format strings still get checked
because the underlying literal keeps getting passed into __trace_printk()
in the "else" branch, which is not taken but still evaluated for
compile-time warnings.

Fixes: ec7d8e68ef0e ("sunrpc: add a Kconfig option to redirect dfprintk() output to trace buffer")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 include/linux/trace_printk.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/include/linux/trace_printk.h b/include/linux/trace_printk.h
index bb5874097f24..2670ec7f4262 100644
--- a/include/linux/trace_printk.h
+++ b/include/linux/trace_printk.h
@@ -107,7 +107,6 @@ do {									\
 		__trace_printk(_THIS_IP_, fmt, ##args);			\
 } while (0)
 
-extern __printf(2, 3)
 int __trace_bprintk(unsigned long ip, const char *fmt, ...);
 
 extern __printf(2, 3)
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-02-03 17:17 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-02  9:58 [PATCH] tracing: remove __printf() attribute on __ftrace_vbprintk() Arnd Bergmann
2026-02-02 11:37 ` Jeff Layton
2026-02-02 17:57 ` Andy Shevchenko
2026-02-02 17:59 ` Steven Rostedt
2026-02-03 12:12 ` kernel test robot
2026-02-03 14:58   ` Andy Shevchenko
2026-02-03 15:56     ` Arnd Bergmann
2026-02-03 17:17       ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox