summaryrefslogtreecommitdiff
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
authorSuthikulpanit, Suravee <Suravee.Suthikulpanit@amd.com>2019-01-29 08:08:42 +0000
committerPaolo Bonzini <pbonzini@redhat.com>2019-02-20 22:48:20 +0100
commit98d90582be2e08246a70af31e09950ecb8876252 (patch)
tree7ef1a56056807cb8653d52c26bb0f91d59619d86 /arch/x86/kvm/x86.c
parent90952cd388595317170ad22a6bcee3cb8cde4942 (diff)
downloadlwn-98d90582be2e08246a70af31e09950ecb8876252.tar.gz
lwn-98d90582be2e08246a70af31e09950ecb8876252.zip
svm: Fix AVIC DFR and LDR handling
Current SVM AVIC driver makes two incorrect assumptions: 1. APIC LDR register cannot be zero 2. APIC DFR for all vCPUs must be the same LDR=0 means the local APIC does not support logical destination mode. Therefore, the driver should mark any previously assigned logical APIC ID table entry as invalid, and return success. Also, DFR is specific to a particular local APIC, and can be different among all vCPUs (as observed on Windows 10). These incorrect assumptions cause Windows 10 and FreeBSD VMs to fail to boot with AVIC enabled. So, instead of flush the whole logical APIC ID table, handle DFR and LDR for each vCPU independently. Fixes: 18f40c53e10f ('svm: Add VMEXIT handlers for AVIC') Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Reported-by: Julian Stecklina <jsteckli@amazon.de> Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
0 files changed, 0 insertions, 0 deletions