1
0
Fork 0

checkpatch: prefer ftrace over function entry/exit printks

Prefer using ftrace over function entry/exit logging messages.

Warn with various function entry/exit only logging that only
use __func__ with or without descriptive decoration.

Link: https://lkml.kernel.org/r/47c01081533a417c99c9a80a4cd537f8c308503f.camel@perches.com
Signed-off-by: Joe Perches <joe@perches.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
master
Joe Perches 2021-02-25 17:21:50 -08:00 committed by Linus Torvalds
parent ea7dbab3e5
commit adb2da82fc
1 changed files with 35 additions and 0 deletions

View File

@ -507,6 +507,30 @@ our $signature_tags = qr{(?xi:
Cc:
)};
our $tracing_logging_tags = qr{(?xi:
[=-]*> |
<[=-]* |
\[ |
\] |
start |
called |
entered |
entry |
enter |
in |
inside |
here |
begin |
exit |
end |
done |
leave |
completed |
out |
return |
[\.\!:\s]*
)};
sub edit_distance_min {
my (@arr) = @_;
my $len = scalar @arr;
@ -5972,6 +5996,17 @@ sub process {
"Prefer using '\"%s...\", __func__' to using '$context_function', this function's name, in a string\n" . $herecurr);
}
# check for unnecessary function tracing like uses
# This does not use $logFunctions because there are many instances like
# 'dprintk(FOO, "%s()\n", __func__);' which do not match $logFunctions
if ($rawline =~ /^\+.*\([^"]*"$tracing_logging_tags{0,3}%s(?:\s*\(\s*\)\s*)?$tracing_logging_tags{0,3}(?:\\n)?"\s*,\s*__func__\s*\)\s*;/) {
if (WARN("TRACING_LOGGING",
"Unnecessary ftrace-like logging - prefer using ftrace\n" . $herecurr) &&
$fix) {
fix_delete_line($fixlinenr, $rawline);
}
}
# check for spaces before a quoted newline
if ($rawline =~ /^.*\".*\s\\n/) {
if (WARN("QUOTED_WHITESPACE_BEFORE_NEWLINE",