summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-05-20 08:02:17 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-06-20 10:24:11 +0200
commit5e9cc6ea67757d1ddfceddd870ea390cb964b841 (patch)
tree4a2e909242950d1ab329b3f9ef9eab425d342629 /arch
parentb8ef2244dfda97fcbaa18f06ed0edc66b7288b03 (diff)
downloadlinux-5e9cc6ea67757d1ddfceddd870ea390cb964b841.tar.gz
linux-5e9cc6ea67757d1ddfceddd870ea390cb964b841.tar.bz2
linux-5e9cc6ea67757d1ddfceddd870ea390cb964b841.zip
KVM: nSVM: leave ASID aside in copy_vmcb_control_area
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kvm/svm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 1079228e4fef..29078eaf18c9 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -2734,7 +2734,7 @@ static inline void copy_vmcb_control_area(struct vmcb *dst_vmcb, struct vmcb *fr
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;