KVM x86 "misc" changes for 6.4. The two highlights are Mathias' optimization for CR0.WP toggling and Binbin's addition of helpers to query individual CR0/CR4 bits (a very nice and overdue cleanup). The following changes since commit d8708b80fa0e6e21bc0c9e7276ad0bccef73b6e7: KVM: Change return type of kvm_arch_vm_ioctl() to "int" (2023-03-16 10:18:07 -0400) are available in the Git repository at: https://github.com/kvm-x86/linux.git tags/kvm-x86-misc-6.4 for you to fetch changes up to cf9f4c0eb1699d306e348b1fd0225af7b2c282d3: KVM: x86/mmu: Refresh CR0.WP prior to checking for emulated permission faults (2023-04-10 15:25:36 -0700) ---------------------------------------------------------------- KVM x86 changes for 6.4: - Optimize CR0.WP toggling by avoiding an MMU reload when TDP is enabled, and by giving the guest control of CR0.WP when EPT is enabled on VMX (VMX-only because SVM doesn't support per-bit controls) - Add CR0/CR4 helpers to query single bits, and clean up related code where KVM was interpreting kvm_read_cr4_bits()'s "unsigned long" return as a bool - Move AMD_PSFD to cpufeatures.h and purge KVM's definition - Misc cleanups ---------------------------------------------------------------- Binbin Wu (4): KVM: x86: Add helpers to query individual CR0/CR4 bits KVM: x86: Use boolean return value for is_{pae,pse,paging}() KVM: SVM: Use kvm_is_cr4_bit_set() to query SMAP/SMEP in "can emulate" KVM: x86: Change return type of is_long_mode() to bool Mathias Krause (4): KVM: x86: Do not unload MMU roots when only toggling CR0.WP with TDP enabled KVM: x86: Ignore CR0.WP toggles in non-paging mode KVM: x86: Make use of kvm_read_cr*_bits() when testing bits KVM: VMX: Make CR0.WP a guest owned bit Robert Hoo (1): KVM: x86: Remove a redundant guest cpuid check in kvm_set_cr4() Sean Christopherson (4): KVM: SVM: Fix benign "bool vs. int" comparison in svm_set_cr0() x86: KVM: Add common feature flag for AMD's PSFD KVM: x86: Assert that the emulator doesn't load CS with garbage in !RM KVM: x86/mmu: Refresh CR0.WP prior to checking for emulated permission faults Tom Rix (1): KVM: x86: set "mitigate_smt_rsb" storage-class-specifier to static arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/kvm/cpuid.c | 12 +++------- arch/x86/kvm/emulate.c | 8 +++++++ arch/x86/kvm/kvm_cache_regs.h | 18 ++++++++++++++- arch/x86/kvm/mmu.h | 28 ++++++++++++++++++++++-- arch/x86/kvm/mmu/mmu.c | 15 +++++++++++++ arch/x86/kvm/pmu.c | 4 ++-- arch/x86/kvm/svm/svm.c | 6 ++--- arch/x86/kvm/vmx/nested.c | 6 ++--- arch/x86/kvm/vmx/vmx.c | 8 +++---- arch/x86/kvm/vmx/vmx.h | 18 +++++++++++++++ arch/x86/kvm/x86.c | 45 ++++++++++++++++++++++++-------------- arch/x86/kvm/x86.h | 22 +++++++++---------- 13 files changed, 139 insertions(+), 52 deletions(-)