[PATCH v4 0/4] KVM: x86: MSR filtering and related fixes

From: Sean Christopherson
Date: Mon Nov 08 2021 - 20:40:36 EST


Fix a nVMX MSR interception check bug, fix two intertwined nVMX bugs bugs
related to MSR filtering (one directly, one indirectly), and additional
cleanup on top. The main SRCU fix from the original series was merged,
but these got left behind (luckily, becaues the main fix was buggy).

Side topic, getting a VM to actually barf on RDMSR(SPEC_CTRL) is comically
difficult: -spec-ctrl,-stibp,-ssbd,-ibrs-all,-ibpb,-amd-stibp,-amd-ssbd.
QEMU and KVM really, really want to expose SPEC_CTRL to the guest :-)

v4:
- Rebase to 0d7d84498fb4 ("KVM: x86: SGX must obey the ... protocol")
- Fix inverted passthrough check for SPEC_CTRL. [Vitaly]
- Add patch to fix MSR bitmap enabling check in helper.

v3:
- Rebase to 9f6090b09d66 ("KVM: MMU: make spte .... in make_spte")

v2:
- https://lkml.kernel.org/r/20210318224310.3274160-1-seanjc@xxxxxxxxxx
- Make the macro insanity slightly less insane. [Paolo]

v1: https://lkml.kernel.org/r/20210316184436.2544875-1-seanjc@xxxxxxxxxx

Sean Christopherson (4):
KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in
use
KVM: nVMX: Handle dynamic MSR intercept toggling
KVM: VMX: Macrofy the MSR bitmap getters and setters
KVM: nVMX: Clean up x2APIC MSR handling for L2

arch/x86/kvm/vmx/nested.c | 164 +++++++++++++++-----------------------
arch/x86/kvm/vmx/vmx.c | 61 ++------------
arch/x86/kvm/vmx/vmx.h | 28 +++++++
3 files changed, 97 insertions(+), 156 deletions(-)

--
2.34.0.rc0.344.g81b53c2807-goog