|
|
@@ -5116,7 +5116,27 @@ sub process {
|
|
|
}
|
|
|
}
|
|
|
# check for memory barriers without a comment.
|
|
|
- if ($line =~ /\b(mb|rmb|wmb|read_barrier_depends|smp_mb|smp_rmb|smp_wmb|smp_read_barrier_depends)\(/) {
|
|
|
+
|
|
|
+ my $barriers = qr{
|
|
|
+ mb|
|
|
|
+ rmb|
|
|
|
+ wmb|
|
|
|
+ read_barrier_depends
|
|
|
+ }x;
|
|
|
+ my $barrier_stems = qr{
|
|
|
+ mb__before_atomic|
|
|
|
+ mb__after_atomic|
|
|
|
+ store_release|
|
|
|
+ load_acquire|
|
|
|
+ store_mb|
|
|
|
+ (?:$barriers)
|
|
|
+ }x;
|
|
|
+ my $all_barriers = qr{
|
|
|
+ (?:$barriers)|
|
|
|
+ smp_(?:$barrier_stems)
|
|
|
+ }x;
|
|
|
+
|
|
|
+ if ($line =~ /\b(?:$all_barriers)\s*\(/) {
|
|
|
if (!ctx_has_comment($first_line, $linenr)) {
|
|
|
WARN("MEMORY_BARRIER",
|
|
|
"memory barrier without comment\n" . $herecurr);
|