mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-30 11:04:25 +00:00
checkpatch: check for uncommented waitqueue_active()
Linus sayeth: : Pretty much every single time people use this "if : (waitqueue_active())" model, it tends to be a bug, because it means : that there is zero serialization with people who are just about to go : to sleep. It's fundamentally racy against all the "wait_event()" loops : that carefully do memory barriers between testing conditions and going : to sleep, because the memory barriers now don't exist on the waking : side. : : So I'm making a new rule: if you use waitqueue_active(), I want an : explanation for why it's not racy with the waiter. A big comment about : the memory ordering, or about higher-level locks that are held by the : caller, or something. Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
cbdc281019
commit
cb426e99ff
1 changed files with 7 additions and 0 deletions
|
@ -4898,6 +4898,13 @@ sub process {
|
||||||
"memory barrier without comment\n" . $herecurr);
|
"memory barrier without comment\n" . $herecurr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# check for waitqueue_active without a comment.
|
||||||
|
if ($line =~ /\bwaitqueue_active\s*\(/) {
|
||||||
|
if (!ctx_has_comment($first_line, $linenr)) {
|
||||||
|
WARN("WAITQUEUE_ACTIVE",
|
||||||
|
"waitqueue_active without comment\n" . $herecurr);
|
||||||
|
}
|
||||||
|
}
|
||||||
# check of hardware specific defines
|
# check of hardware specific defines
|
||||||
if ($line =~ m@^.\s*\#\s*if.*\b(__i386__|__powerpc64__|__sun__|__s390x__)\b@ && $realfile !~ m@include/asm-@) {
|
if ($line =~ m@^.\s*\#\s*if.*\b(__i386__|__powerpc64__|__sun__|__s390x__)\b@ && $realfile !~ m@include/asm-@) {
|
||||||
CHK("ARCH_DEFINES",
|
CHK("ARCH_DEFINES",
|
||||||
|
|
Loading…
Add table
Reference in a new issue