Skip to content
Snippets Groups Projects
Commit 8020b253 authored by Nicolas Boichat's avatar Nicolas Boichat Committed by Linus Torvalds
Browse files

checkpatch: warn if trace_printk and friends are called


trace_printk is meant as a debugging tool, and should not be compiled into
production code without specific debug Kconfig options enabled, or source
code changes, as indicated by the warning that shows up on boot if any
trace_printk is called:

 **   NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE   **
 **                                                      **
 ** trace_printk() being used. Allocating extra memory.  **
 **                                                      **
 ** This means that this is a DEBUG kernel and it is     **
 ** unsafe for production use.                           **

Let's warn developers when they try to submit such a change.

Signed-off-by: default avatarNicolas Boichat <drinkcat@chromium.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Joe Perches <joe@perches.com>
Link: https://lkml.kernel.org/r/20200825193600.v2.1.I723c43c155f02f726c97501be77984f1e6bb740a@changeid


Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ed4761f7
No related branches found
No related tags found
No related merge requests found
...@@ -4274,6 +4274,12 @@ sub process { ...@@ -4274,6 +4274,12 @@ sub process {
"Prefer dev_$level(... to dev_printk(KERN_$orig, ...\n" . $herecurr); "Prefer dev_$level(... to dev_printk(KERN_$orig, ...\n" . $herecurr);
} }
# trace_printk should not be used in production code.
if ($line =~ /\b(trace_printk|trace_puts|ftrace_vprintk)\s*\(/) {
WARN("TRACE_PRINTK",
"Do not use $1() in production code (this can be ignored if built only with a debug config option)\n" . $herecurr);
}
# ENOSYS means "bad syscall nr" and nothing else. This will have a small # ENOSYS means "bad syscall nr" and nothing else. This will have a small
# number of false positives, but assembly files are not checked, so at # number of false positives, but assembly files are not checked, so at
# least the arch entry code will not trigger this warning. # least the arch entry code will not trigger this warning.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment