]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: SVM: use vmcb01 in svm_refresh_apicv_exec_ctrl
authorMaxim Levitsky <mlevitsk@redhat.com>
Tue, 13 Jul 2021 14:20:18 +0000 (17:20 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 27 Jul 2021 20:59:01 +0000 (16:59 -0400)
commit0209466936000b5941d3d44382db3ec931f96a87
tree5ac9dee54a0cff8613f59fa4b8d9b70e92b8fc24
parent6a23e8faaa8b2297d3378b3fb366eda951333b5e
KVM: SVM: use vmcb01 in svm_refresh_apicv_exec_ctrl

Currently when SVM is enabled in guest CPUID, AVIC is inhibited as soon
as the guest CPUID is set.

AVIC happens to be fully disabled on all vCPUs by the time any guest
entry starts (if after migration the entry can be nested).

The reason is that currently we disable avic right away on vCPU from which
the kvm_request_apicv_update was called and for this case, it happens to be
called on all vCPUs (by svm_vcpu_after_set_cpuid).

After we stop doing this, AVIC will end up being disabled only when
KVM_REQ_APICV_UPDATE is processed which is after we done switching to the
nested guest.

Fix this by just using vmcb01 in svm_refresh_apicv_exec_ctrl for avic
(which is a right thing to do anyway).

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20210713142023.106183-4-mlevitsk@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/avic.c