From: Jim Cromie <jim.cromie@gmail.com>
To: joe@perches.com, linux-kernel@vger.kernel.org
Cc: Jim Cromie <jim.cromie@gmail.com>
Subject: [PATCH 3/3] checkpatch: suppress BUG_ON warn when it is named in commitmsg
Date: Fri, 25 Jun 2021 21:40:16 -0600 [thread overview]
Message-ID: <20210626034016.170306-4-jim.cromie@gmail.com> (raw)
In-Reply-To: <20210626034016.170306-1-jim.cromie@gmail.com>
allow mention of BUG_ON in the preamble/commitmsg/intro to silence the
warning normally issued when one is added. This presumes the commit
message will adequately explain the reason "BUG_ON" is appropriate.
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
---
scripts/checkpatch.pl | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index a8dfba53b593..32612f39d742 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2560,6 +2560,18 @@ sub exclude_global_initialisers {
$realfile =~ m@/bpf/.*\.bpf\.c$@;
}
+sub commitmsg_refers_to { # see if $srch is in commit message
+ my ($srch, $lines) = @_;
+ #print "ok checking for $srch in $lines lines\n";
+ for my $i (0..$lines) {
+ if ($rawlines[$i] =~ /$srch/) {
+ print "\thmm: $srch mentioned in preamble, presuming it is explained\n";
+ return 1;
+ }
+ }
+ return 0;
+}
+
sub process {
my $filename = shift;
@@ -2586,6 +2598,7 @@ sub process {
my $has_patch_separator = 0; #Found a --- line
my $has_commit_log = 0; #Encountered lines before patch
my $commit_log_lines = 0; #Number of commit log lines
+ my $eopreamble = 0; # above truncates at =~ /^\. \w+/
my $commit_log_possible_stack_dump = 0;
my $commit_log_long_line = 0;
my $commit_log_has_diff = 0;
@@ -2731,6 +2744,7 @@ sub process {
($line =~ /^rename (?:from|to) \S+\s*$/ ||
$line =~ /^diff --git a\/[\w\/\.\_\-]+ b\/\S+\s*$/))) {
$is_patch = 1;
+ $eopreamble = $linenr;
}
#extract the line range in the file after the patch is applied
@@ -4654,7 +4668,7 @@ sub process {
}
# avoid BUG() or BUG_ON()
- if ($line =~ /\b(?:BUG|BUG_ON)\b/) {
+ if ($line =~ /\b(BUG|BUG_ON)\b/ && !commitmsg_refers_to($1, $eopreamble)) {
my $msg_level = \&WARN;
$msg_level = \&CHK if ($file);
&{$msg_level}("AVOID_BUG",
--
2.31.1
prev parent reply other threads:[~2021-06-26 3:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-26 3:40 [PATCH 0/3] checkpatch tweaks Jim Cromie
2021-06-26 3:40 ` [PATCH 1/3] checkpatch: skip spacing tests on linker scripts Jim Cromie
2021-06-26 4:15 ` Joe Perches
2021-06-28 16:53 ` jim.cromie
2021-06-29 16:48 ` jim.cromie
2021-06-29 18:28 ` Joe Perches
2021-06-29 19:50 ` jim.cromie
2021-06-29 20:01 ` Joe Perches
2021-06-30 16:38 ` jim.cromie
2021-06-30 17:12 ` Joe Perches
2021-06-26 3:40 ` [PATCH 2/3] checkpatch: tweak extern in C warning Jim Cromie
2021-06-26 4:31 ` Joe Perches
2021-06-27 3:47 ` jim.cromie
2021-06-30 17:33 ` Joe Perches
2021-06-26 3:40 ` Jim Cromie [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210626034016.170306-4-jim.cromie@gmail.com \
--to=jim.cromie@gmail.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®