KVM: Replace smp_mb() with smp_mb_after_atomic() in the kvm_make_all_cpus_request()
authorLan Tianyu <tianyu.lan@intel.com>
Sun, 13 Mar 2016 03:10:26 +0000 (11:10 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 22 Mar 2016 15:38:30 +0000 (16:38 +0100)
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
virt/kvm/kvm_main.c

index db021c383aa75971ea49a43a0b4a449ccfd1d74e..402590dfcf9b942293b76e646ec8a3f4c6b15f7d 100644 (file)
@@ -170,8 +170,8 @@ bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req)
                kvm_make_request(req, vcpu);
                cpu = vcpu->cpu;
 
-               /* Set ->requests bit before we read ->mode */
-               smp_mb();
+               /* Set ->requests bit before we read ->mode. */
+               smp_mb__after_atomic();
 
                if (cpus != NULL && cpu != -1 && cpu != me &&
                      kvm_vcpu_exiting_guest_mode(vcpu) != OUTSIDE_GUEST_MODE)