Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull virtio barrier rework+fixes from Michael Tsirkin: "This adds a new kind of barrier, and reworks virtio and xen to use it. Plus some fixes here and there" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (44 commits) checkpatch: add virt barriers checkpatch: check for __smp outside barrier.h checkpatch.pl: add missing memory barriers virtio: make find_vqs() checkpatch.pl-friendly virtio_balloon: fix race between migration and ballooning virtio_balloon: fix race by fill and leak s390: more efficient smp barriers s390: use generic memory barriers xen/events: use virt_xxx barriers xen/io: use virt_xxx barriers xenbus: use virt_xxx barriers virtio_ring: use virt_store_mb sh: move xchg_cmpxchg to a header by itself sh: support 1 and 2 byte xchg virtio_ring: update weak barriers to use virt_xxx Revert "virtio_ring: Update weak barriers to use dma_wmb/rmb" asm-generic: implement virt_xxx memory barriers x86: define __smp_xxx xtensa: define __smp_xxx tile: define __smp_xxx ...
This commit is contained in:
@@ -5116,13 +5116,44 @@ 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)|
|
||||
virt_(?:$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);
|
||||
}
|
||||
}
|
||||
|
||||
my $underscore_smp_barriers = qr{__smp_(?:$barrier_stems)}x;
|
||||
|
||||
if ($realfile !~ m@^include/asm-generic/@ &&
|
||||
$realfile !~ m@/barrier\.h$@ &&
|
||||
$line =~ m/\b(?:$underscore_smp_barriers)\s*\(/ &&
|
||||
$line !~ m/^.\s*\#\s*define\s+(?:$underscore_smp_barriers)\s*\(/) {
|
||||
WARN("MEMORY_BARRIER",
|
||||
"__smp memory barriers shouldn't be used outside barrier.h and asm-generic\n" . $herecurr);
|
||||
}
|
||||
|
||||
# check for waitqueue_active without a comment.
|
||||
if ($line =~ /\bwaitqueue_active\s*\(/) {
|
||||
if (!ctx_has_comment($first_line, $linenr)) {
|
||||
|
||||
Reference in New Issue
Block a user