diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2010-11-01 14:01:13 +0100 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-11-05 14:42:27 -0200 |
commit | 453d9c57e27b4401bc3e98906bcac31ae8be0165 (patch) | |
tree | 53f56dd0d1001b0c78ebfda795cab7d1e0469e1d /arch/x86 | |
parent | 97e69aa62f8b5d338d6cff49be09e37cc1262838 (diff) | |
download | blackbird-op-linux-453d9c57e27b4401bc3e98906bcac31ae8be0165.tar.gz blackbird-op-linux-453d9c57e27b4401bc3e98906bcac31ae8be0165.zip |
KVM: x86: Issue smp_call_function_many with preemption disabled
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>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kvm/x86.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 463c65b8f93f..cdac9e592aa5 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -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(); |