summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorMarcelo Tosatti <mtosatti@redhat.com>2009-10-01 19:16:58 -0300
committerAvi Kivity <avi@redhat.com>2009-10-04 13:57:24 +0200
commiteb5109e311b5152c0614a28d7d615d087f268f19 (patch)
tree7e6cff230fb9ba1c0af815f1cdbb08cdf818389d /arch/x86
parentb2d83cfa3fdefe5c6573d443d099a18dc3a93c5f (diff)
downloadkernel-crypto-eb5109e311b5152c0614a28d7d615d087f268f19.tar.gz
kernel-crypto-eb5109e311b5152c0614a28d7d615d087f268f19.tar.xz
kernel-crypto-eb5109e311b5152c0614a28d7d615d087f268f19.zip
KVM: VMX: flush TLB with INVEPT on cpu migration
It is possible that stale EPTP-tagged mappings are used, if a vcpu migrates to a different pcpu. Set KVM_REQ_TLB_FLUSH in vmx_vcpu_load, when switching pcpus, which will invalidate both VPID and EPT mappings on the next vm-entry. Cc: stable@kernel.org Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kvm/vmx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index f3812014bd0..ed53b42caba 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -709,7 +709,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
if (vcpu->cpu != cpu) {
vcpu_clear(vmx);
kvm_migrate_timers(vcpu);
- vpid_sync_vcpu_all(vmx);
+ set_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests);
local_irq_disable();
list_add(&vmx->local_vcpus_link,
&per_cpu(vcpus_on_cpu, cpu));