]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Jun 2020 14:43:00 +0000 (16:43 +0200)
commit 6c0238c4a62b3a0b1201aeb7e33a4636d552a436 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/svm/nested.c

index 4153c40e1770e6f1e61a387c778258f3c85f5bc4..c2a31a2a3cefc06a09492ce0f04e37cb26731c65 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;