KVM: nSVM: leave ASID aside in copy_vmcb_control_area
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 20 May 2020 12:02:17 +0000 (08:02 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 27 May 2020 17:11:11 +0000 (13:11 -0400)
Restoring the ASID from the hsave area on VMEXIT is wrong, because its
value depends on the handling of TLB flushes.  Just skipping the field in
copy_vmcb_control_area will do.

Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/nested.c

index f4cd2d0..d544cce 100644 (file)
@@ -150,7 +150,7 @@ static void copy_vmcb_control_area(struct vmcb *dst_vmcb, struct vmcb *from_vmcb
        dst->iopm_base_pa         = from->iopm_base_pa;
        dst->msrpm_base_pa        = from->msrpm_base_pa;
        dst->tsc_offset           = from->tsc_offset;
-       dst->asid                 = from->asid;
+       /* asid not copied, it is handled manually for svm->vmcb.  */
        dst->tlb_ctl              = from->tlb_ctl;
        dst->int_ctl              = from->int_ctl;
        dst->int_vector           = from->int_vector;