Please pull misc x86 fixes and cleanups that have been floating around for a while. These haven't been plugged into any bot-visible branch; I forgot about most of them until doing a bit of fall/winter cleaning. That said, the only one that is substantially complex is Anton's TSC snapshot fix, and that's been on the lists for many months. Jim's IBPB fix is arguably fodder for 6.1, but the bug has been around for 2+ years so squeezing it in this late in the cycle doesn't seem necessary. Holler if any of these give you pause! Thanks! The following changes since commit df0bb47baa95aad133820b149851d5b94cbc6790: KVM: x86: fix uninitialized variable use on KVM_REQ_TRIPLE_FAULT (2022-11-30 11:50:39 -0500) are available in the Git repository at: https://github.com/kvm-x86/linux.git tags/kvm-x86-fixes-6.2-1 for you to fetch changes up to 3ebcbd2244f5a69e06e5f655bfbd8127c08201c7: KVM: x86: Use current rather than snapshotted TSC frequency if it is constant (2022-11-30 16:31:27 -0800) ---------------------------------------------------------------- Misc KVM x86 fixes and cleanups for 6.2: - One-off fixes for various emulation flows (SGX, VMXON, NRIPS=0). - Reinstate IBPB on emulated VM-Exit that was incorrectly dropped a few years back when eliminating unnecessary barriers when switching between vmcs01 and vmcs02. - Clean up the MSR filter docs. - Clean up vmread_error_trampoline() to make it more obvious that params must be passed on the stack, even for x86-64. - Let userspace set all supported bits in MSR_IA32_FEAT_CTL irrespective of the current guest CPUID. - Fudge around a race with TSC refinement that results in KVM incorrectly thinking a guest needs TSC scaling when running on a CPU with a constant TSC, but no hardware-enumerated TSC frequency. ---------------------------------------------------------------- Anton Romanov (1): KVM: x86: Use current rather than snapshotted TSC frequency if it is constant Jim Mattson (2): KVM: VMX: Guest usage of IA32_SPEC_CTRL is likely KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS Peng Hao (1): KVM: x86: Keep the lock order consistent between SRCU and gpc spinlock Sean Christopherson (12): KVM: VMX: Resume guest immediately when injecting #GP on ECREATE KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception KVM: SVM: Skip WRMSR fastpath on VM-Exit if next RIP isn't valid KVM: nVMX: Inject #GP, not #UD, if "generic" VMXON CR0/CR4 check fails KVM: x86: Delete documentation for READ|WRITE in KVM_X86_SET_MSR_FILTER KVM: x86: Reword MSR filtering docs to more precisely define behavior KVM: x86: Clean up KVM_CAP_X86_USER_SPACE_MSR documentation KVM: nVMX: Reword comments about generating nested CR0/4 read shadows KVM: VMX: Make vmread_error_trampoline() uncallable from C code KVM: VMX: Allow userspace to set all supported FEATURE_CONTROL bits KVM: VMX: Move MSR_IA32_FEAT_CTL.LOCKED check into "is valid" helper KVM: selftests: Verify userspace can stuff IA32_FEATURE_CONTROL at will Zhao Liu (1): KVM: SVM: Replace kmap_atomic() with kmap_local_page() Documentation/virt/kvm/api.rst | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------- arch/x86/kvm/svm/sev.c | 4 ++-- arch/x86/kvm/svm/svm.c | 10 ++++++++-- arch/x86/kvm/vmx/nested.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ arch/x86/kvm/vmx/nested.h | 7 ++++--- arch/x86/kvm/vmx/sgx.c | 4 +++- arch/x86/kvm/vmx/vmenter.S | 2 ++ arch/x86/kvm/vmx/vmx.c | 51 ++++++++++++++++++++++++++++++++++++++---------- arch/x86/kvm/vmx/vmx_ops.h | 18 +++++++++++++++-- arch/x86/kvm/x86.c | 48 +++++++++++++++++++++++++++++++++------------ arch/x86/kvm/xen.c | 4 ++-- tools/testing/selftests/kvm/include/x86_64/processor.h | 2 ++ tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c | 47 ++++++++++++++++++++++++++++++++++++++++++++ 13 files changed, 277 insertions(+), 117 deletions(-)