Commit eb5109e3 authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Avi Kivity

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: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent b2d83cfa
...@@ -709,7 +709,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu) ...@@ -709,7 +709,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
if (vcpu->cpu != cpu) { if (vcpu->cpu != cpu) {
vcpu_clear(vmx); vcpu_clear(vmx);
kvm_migrate_timers(vcpu); kvm_migrate_timers(vcpu);
vpid_sync_vcpu_all(vmx); set_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests);
local_irq_disable(); local_irq_disable();
list_add(&vmx->local_vcpus_link, list_add(&vmx->local_vcpus_link,
&per_cpu(vcpus_on_cpu, cpu)); &per_cpu(vcpus_on_cpu, cpu));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment