From 2580e72f8d62d9094ddea2af72de222edcac4ccc Mon Sep 17 00:00:00 2001 From: Quentin Young Date: Fri, 23 Feb 2018 10:58:17 -0500 Subject: [PATCH] tools: finer-grained error codes for checkpatch * 2 for errors * 1 for warnings * 0 for clean * Suppress all report text for a clean result * Remove check for const structs from perl script * Remove grep suppression for that check from shell script Signed-off-by: Quentin Young --- tools/checkpatch.pl | 13 ------------- tools/checkpatch.sh | 15 ++++++++++----- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/tools/checkpatch.pl b/tools/checkpatch.pl index fe771ebbba..a952de8947 100755 --- a/tools/checkpatch.pl +++ b/tools/checkpatch.pl @@ -55,7 +55,6 @@ my $min_conf_desc_length = 4; my $spelling_file = "$D/spelling.txt"; my $codespell = 0; my $codespellfile = "/usr/share/codespell/dictionary.txt"; -my $conststructsfile = "$D/const_structs.checkpatch"; my $typedefsfile = ""; my $color = "auto"; my $allow_c99_comments = 1; @@ -685,10 +684,6 @@ sub read_words { return 0; } -my $const_structs = ""; -read_words(\$const_structs, $conststructsfile) - or warn "No structs that should be const will be found - file '$conststructsfile': $!\n"; - my $typeOtherTypedefs = ""; if (length($typedefsfile)) { read_words(\$typeOtherTypedefs, $typedefsfile) @@ -6197,14 +6192,6 @@ sub process { "please use device_initcall() or more appropriate function instead of __initcall() (see include/linux/init.h)\n" . $herecurr); } -# check for various structs that are normally const (ops, kgdb, device_tree) -# and avoid what seem like struct definitions 'struct foo {' - if ($line !~ /\bconst\b/ && - $line =~ /\bstruct\s+($const_structs)\b(?!\s*\{)/) { - WARN("CONST_STRUCT", - "struct $1 should normally be const\n" . $herecurr); - } - # use of NR_CPUS is usually wrong # ignore definitions of NR_CPUS and usage to define arrays as likely right if ($line =~ /\bNR_CPUS\b/ && diff --git a/tools/checkpatch.sh b/tools/checkpatch.sh index f55692096f..930c8e2df6 100755 --- a/tools/checkpatch.sh +++ b/tools/checkpatch.sh @@ -69,15 +69,20 @@ else done echo "Done." for file in /tmp/f1/*_cp; do - echo "Report for $(basename $file _cp)" 1>&2 - echo "===============================================" 1>&2 if [ -a /tmp/f2/$(basename $file) ]; then - diff $file /tmp/f2/$(basename $file) | grep -v "normally be const" | grep -A3 "ERROR\|WARNING" 1>&2 + result=$(diff $file /tmp/f2/$(basename $file) | grep -A3 "ERROR\|WARNING") else - cat $file | grep -v "normally be const" | grep -A3 "ERROR\|WARNING" 1>&2 + result=$(cat $file | grep -A4 "ERROR\|WARNING") fi if [ "$?" -eq "0" ]; then - stat=1 + echo "Report for $(basename $file _cp)" 1>&2 + echo "===============================================" 1>&2 + echo "$result" 1>&2 + if echo $result | grep -q "ERROR"; then + stat=2 + elif [ "$stat" -eq "0" ]; then + stat=1 + fi fi done fi -- 2.39.5