v3 of fixing EFER reserved bits initialization on vendor module reload,
and move them into kvm_caps. I reworked and reordered the patches such
that we go straight to reinitializing the EFER reserved bits, instead of
first re-reserving the bits on vendor init if nested=0.
The motivation for the previous approach was simpler backports, but
practically the fixes don't apply cleanly anyway to most stable kernels
due to EFER.LMSLE handling being introduced very recently.
v2 -> v3:
- Drop KVM_SET_SREGS* validity checks fixes, sent separately.
- Re-ordered and reworked the patches to re-initialize EFER reserved
bits right away.
- Drop the per-vendor op for EFER caps initialization, instead move
EFER.SVME and EFER.LMSLE handling to generic x86 code.
Yosry Ahmed (5):
KVM: x86: Move enabling EFER.SVME and EFER.LMSLE to generic EFER setup
KVM: x86: Disallow EFER.LME and EFER.LMA if long mode is not supported
KVM: x86: Always initialize EFER reserved bits on vendor
initialization
KVM: x86: Reverse the polarity of efer_reserved_bits
KVM: x86: Move supported EFER bits to kvm_caps
arch/x86/include/asm/kvm_host.h | 2 ++
arch/x86/kvm/msrs.c | 21 ++-------------------
arch/x86/kvm/msrs.h | 1 -
arch/x86/kvm/svm/svm.c | 4 ----
arch/x86/kvm/x86.c | 18 +++++++++++++++---
5 files changed, 19 insertions(+), 27 deletions(-)
base-commit: 3aec122bdcaf6f8c4ecfc7f6adf6773015ced676
--
2.55.0.141.g00534a21ce-goog