Use __kvm_request_set to avoid repeated use of wmb(). kvm_make_all_cpus_request is also a candidate for renaming. Signed-off-by: Radim Krčmář <rkrcmar@xxxxxxxxxx> --- virt/kvm/kvm_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 0ee1df3bfcb8..eaab32349664 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -177,8 +177,12 @@ bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req) zalloc_cpumask_var(&cpus, GFP_ATOMIC); me = get_cpu(); + + /* Paired with the smp_mb__after_atomic in kvm_request_test_and_clear. */ + smp_wmb(); + kvm_for_each_vcpu(i, vcpu, kvm) { - kvm_request_set(req, vcpu); + __kvm_request_set(req, vcpu); cpu = vcpu->cpu; /* Set ->requests bit before we read ->mode. */ -- 2.11.1