KVM: VMX: Always intercept accesses to unsupported "extended" x2APIC regs
authorSean Christopherson <seanjc@google.com>
Sat, 7 Jan 2023 01:10:24 +0000 (01:10 +0000)
committerSean Christopherson <seanjc@google.com>
Tue, 24 Jan 2023 18:04:36 +0000 (10:04 -0800)
commitc39857ce8daaaa429ccae2a393301ffeed67e235
tree42f90562d5c8e86616ffc322912b865bfcb0f8a2
parentb5fcc59be72a76b5cf7bcc6d4aba6cdb14557d44
KVM: VMX: Always intercept accesses to unsupported "extended" x2APIC regs

Don't clear the "read" bits for x2APIC registers above SELF_IPI (APIC regs
0x400 - 0xff0, MSRs 0x840 - 0x8ff).  KVM doesn't emulate registers in that
space (there are a smattering of AMD-only extensions) and so should
intercept reads in order to inject #GP.  When APICv is fully enabled,
Intel hardware doesn't validate the registers on RDMSR and instead blindly
retrieves data from the vAPIC page, i.e. it's software's responsibility to
intercept reads to non-existent MSRs.

Fixes: 8d14695f9542 ("x86, apicv: add virtual x2apic support")
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Link: https://lore.kernel.org/r/20230107011025.565472-6-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/vmx/vmx.c