KVM: x86: Issue smp_call_function_many with preemption disabled
authorJan Kiszka <jan.kiszka@siemens.com>
Mon, 1 Nov 2010 13:01:13 +0000 (14:01 +0100)
committerMarcelo Tosatti <mtosatti@redhat.com>
Fri, 5 Nov 2010 16:42:27 +0000 (14:42 -0200)
smp_call_function_many is specified to be called only with preemption
disabled. Fulfill this requirement.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/x86.c

index 463c65b8f93ff66ac28187c3eb242dcc18585edb..cdac9e592aa53ee84b7e184900601ab4730354e5 100644 (file)
@@ -3978,8 +3978,10 @@ int kvm_emulate_wbinvd(struct kvm_vcpu *vcpu)
                return X86EMUL_CONTINUE;
 
        if (kvm_x86_ops->has_wbinvd_exit()) {
+               preempt_disable();
                smp_call_function_many(vcpu->arch.wbinvd_dirty_mask,
                                wbinvd_ipi, NULL, 1);
+               preempt_enable();
                cpumask_clear(vcpu->arch.wbinvd_dirty_mask);
        }
        wbinvd();