summaryrefslogtreecommitdiff
path: root/scripts/checkpatch.pl
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2015-02-13 14:38:38 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2015-02-13 21:21:39 -0800
commitacd9362c248e33187629c950badb834b73e20e41 (patch)
tree906c5686169c07b1849fe49426b72a57c01f26c9 /scripts/checkpatch.pl
parent0d7835fcaa67bb21e5ffd50afaa65c81c53f8856 (diff)
downloadlwn-acd9362c248e33187629c950badb834b73e20e41.tar.gz
lwn-acd9362c248e33187629c950badb834b73e20e41.zip
checkpatch: add likely/unlikely comparison misuse test
Add a test for probably likely/unlikely misuses where the comparison is likely misplaced if (likely(foo) > 0) vs if (likely(foo > 0)) Signed-off-by: Joe Perches <joe@perches.com> Cc: Christoph Jaeger <cj@linux.com> Cc: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-xscripts/checkpatch.pl7
1 files changed, 7 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 786017d4d057..41223c946808 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -5239,6 +5239,13 @@ sub process {
"#define of '$1' is wrong - use Kconfig variables or standard guards instead\n" . $herecurr);
}
+# likely/unlikely comparisons similar to "(likely(foo) > 0)"
+ if ($^V && $^V ge 5.10.0 &&
+ $line =~ /\b((?:un)?likely)\s*\(\s*$FuncArg\s*\)\s*$Compare/) {
+ WARN("LIKELY_MISUSE",
+ "Using $1 should generally have parentheses around the comparison\n" . $herecurr);
+ }
+
# whine mightly about in_atomic
if ($line =~ /\bin_atomic\s*\(/) {
if ($realfile =~ m@^drivers/@) {