The goal of this series is to unify MSR intercepts into common code between VMX and SVM. The high level structure of this series is to: 1. Modify SVM MSR intercepts to adopt how VMX does it. 2. Hoist the newly updated SVM MSR intercept implementation to common x86 code. 3. Hoist the VMX MSR intercept implementation to common x86 code. Aaron Lewis (8): KVM: SVM: Invert the polarity of the "shadow" MSR interception bitmaps KVM: SVM: Track MSRPM as "unsigned long", not "u32" KVM: x86: SVM: Adopt VMX style MSR intercepts in SVM KVM: SVM: Don't "NULL terminate" the list of possible passthrough MSRs KVM: x86: Track possible passthrough MSRs in kvm_x86_ops KVM: x86: Move ownership of passthrough MSR "shadow" to common x86 KVM: x86: Hoist SVM MSR intercepts to common x86 code KVM: x86: Hoist VMX MSR intercepts to common x86 code Anish Ghulati (2): KVM: SVM: Disable intercepts for all direct access MSRs on MSR filter changes KVM: SVM: Delete old SVM MSR management code Sean Christopherson (5): KVM: x86: Use non-atomic bit ops to manipulate "shadow" MSR intercepts KVM: SVM: Use non-atomic bit ops to manipulate MSR interception bitmaps KVM: SVM: Pass through GHCB MSR if and only if VM is SEV-ES KVM: SVM: Drop "always" flag from list of possible passthrough MSRs KVM: VMX: Make list of possible passthrough MSRs "const" arch/x86/include/asm/kvm-x86-ops.h | 5 +- arch/x86/include/asm/kvm_host.h | 18 ++ arch/x86/kvm/svm/sev.c | 11 +- arch/x86/kvm/svm/svm.c | 300 ++++++++++++----------------- arch/x86/kvm/svm/svm.h | 30 +-- arch/x86/kvm/vmx/main.c | 30 +++ arch/x86/kvm/vmx/vmx.c | 144 +++----------- arch/x86/kvm/vmx/vmx.h | 11 +- arch/x86/kvm/x86.c | 129 ++++++++++++- arch/x86/kvm/x86.h | 3 + 10 files changed, 358 insertions(+), 323 deletions(-) -- 2.47.0.338.g60cca15819-goog