diff options
author | Andy Whitcroft <apw@shadowen.org> | 2009-01-06 14:41:16 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-06 15:59:15 -0800 |
commit | 691d77b6b85c20e4166bafd12bd0131b28f95a16 (patch) | |
tree | b7c8950fadd6d3cf3a949d3977597cd0388544e8 | |
parent | 94e2959e7a6a4ef0969932c30349ce6f4469a3cf (diff) | |
download | lwn-691d77b6b85c20e4166bafd12bd0131b28f95a16.tar.gz lwn-691d77b6b85c20e4166bafd12bd0131b28f95a16.zip |
checkpatch: add checks for in_atomic()
in_atomic() is not for driver use so report any such use as an ERROR.
Also in_atomic() is often used to determine if we may sleep, but it is not
reliable in this use model therefore strongly discourage its use.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rwxr-xr-x | scripts/checkpatch.pl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index f88bb3e21cda..826cdbac0114 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2466,6 +2466,15 @@ sub process { last; } } + +# whine mightly about in_atomic + if ($line =~ /\bin_atomic\s*\(/) { + if ($realfile =~ m@^drivers/@) { + ERROR("do not use in_atomic in drivers\n" . $herecurr); + } else { + WARN("use of in_atomic() is incorrect outside core kernel code\n" . $herecurr); + } + } } # If we have no input at all, then there is nothing to report on |