Linus, The following changes since commit a64dcfb451e254085a7daee5fe51bf22959d52d3: Linux 6.14-rc2 (2025-02-09 12:45:03 -0800) are available in the Git repository at: https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus for you to fetch changes up to d3d0b8dfe06098d6d584266c35e9a0947f5b7132: Merge tag 'kvm-x86-fixes-6.14-rcN' of https://github.com/kvm-x86/linux into HEAD (2025-02-14 19:08:35 -0500) Yet another largish pull request, this time that's (mostly) thanks to ARM which has a vector register ~rewrite that fixes a good deal of bugs and actually removes more code than it adds. Paolo ---------------------------------------------------------------- ARM: - Large set of fixes for vector handling, specially in the interactions between host and guest state. This fixes a number of bugs affecting actual deployments, and greatly simplifies the FP/SIMD/SVE handling. Thanks to Mark Rutland for dealing with this thankless task. - Fix an ugly race between vcpu and vgic creation/init, resulting in unexpected behaviours. - Fix use of kernel VAs at EL2 when emulating timers with nVHE. - Small set of pKVM improvements and cleanups. x86: - Fix broken SNP support with KVM module built-in, ensuring the PSP module is initialized before KVM even when the module infrastructure cannot be used to order initcalls - Reject Hyper-V SEND_IPI hypercalls if the local APIC isn't being emulated by KVM to fix a NULL pointer dereference. - Enter guest mode (L2) from KVM's perspective before initializing the vCPU's nested NPT MMU so that the MMU is properly tagged for L2, not L1. - Load the guest's DR6 outside of the innermost .vcpu_run() loop, as the guest's value may be stale if a VM-Exit is handled in the fastpath. ---------------------------------------------------------------- Ashish Kalra (1): x86/sev: Fix broken SNP support with KVM module built-in Marc Zyngier (4): KVM: arm64: Fix __pkvm_host_mkyoung_guest() return value KVM: arm64: Convert timer offset VA when accessed in HYP code KVM: arm64: timer: Drop warning on failed interrupt signalling KVM: arm64: vgic: Hoist SGI/PPI alloc from vgic_init() to kvm_create_vgic() Mark Rutland (9): KVM: arm64: Unconditionally save+flush host FPSIMD/SVE/SME state KVM: arm64: Remove host FPSIMD saving for non-protected KVM KVM: arm64: Remove VHE host restore of CPACR_EL1.ZEN KVM: arm64: Remove VHE host restore of CPACR_EL1.SMEN KVM: arm64: Refactor CPTR trap deactivation KVM: arm64: Refactor exit handlers KVM: arm64: Mark some header functions as inline KVM: arm64: Eagerly switch ZCR_EL{1,2} KVM: arm64: Simplify warning in kvm_arch_vcpu_load_fp() Paolo Bonzini (2): Merge tag 'kvmarm-fixes-6.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD Merge tag 'kvm-x86-fixes-6.14-rcN' of https://github.com/kvm-x86/linux into HEAD Quentin Perret (3): KVM: arm64: Improve error handling from check_host_shared_guest() KVM: arm64: Simplify np-guest hypercalls KVM: arm64: Fix alignment of kvm_hyp_memcache allocations Sean Christopherson (8): KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel KVM: selftests: Mark test_hv_cpuid_e2big() static in Hyper-V CPUID test KVM: selftests: Manage CPUID array in Hyper-V CPUID test's core helper KVM: selftests: Add CPUID tests for Hyper-V features that need in-kernel APIC KVM: nSVM: Enter guest mode before initializing nested NPT MMU KVM: x86: Load DR6 with guest value only before entering .vcpu_run() loop crypto: ccp: Add external API interface for PSP module initialization KVM: SVM: Ensure PSP module is initialized if KVM module is built-in arch/arm64/include/asm/kvm_emulate.h | 42 ------- arch/arm64/include/asm/kvm_host.h | 22 +--- arch/arm64/kernel/fpsimd.c | 25 ----- arch/arm64/kvm/arch_timer.c | 16 ++- arch/arm64/kvm/arm.c | 8 -- arch/arm64/kvm/fpsimd.c | 107 ++---------------- arch/arm64/kvm/hyp/entry.S | 5 + arch/arm64/kvm/hyp/include/hyp/switch.h | 148 ++++++++++++++++++------- arch/arm64/kvm/hyp/nvhe/hyp-main.c | 15 ++- arch/arm64/kvm/hyp/nvhe/mem_protect.c | 76 +++++++------ arch/arm64/kvm/hyp/nvhe/switch.c | 89 +++++++-------- arch/arm64/kvm/hyp/vhe/switch.c | 33 +++--- arch/arm64/kvm/vgic/vgic-init.c | 74 ++++++------- arch/x86/include/asm/kvm-x86-ops.h | 1 + arch/x86/include/asm/kvm_host.h | 1 + arch/x86/include/asm/sev.h | 2 + arch/x86/kvm/hyperv.c | 6 +- arch/x86/kvm/mmu/mmu.c | 2 +- arch/x86/kvm/svm/nested.c | 10 +- arch/x86/kvm/svm/sev.c | 10 ++ arch/x86/kvm/svm/svm.c | 13 +-- arch/x86/kvm/vmx/main.c | 1 + arch/x86/kvm/vmx/vmx.c | 10 +- arch/x86/kvm/vmx/x86_ops.h | 1 + arch/x86/kvm/x86.c | 3 + arch/x86/virt/svm/sev.c | 23 ++-- drivers/crypto/ccp/sp-dev.c | 14 +++ drivers/iommu/amd/init.c | 34 +++++- include/linux/psp-sev.h | 9 ++ tools/testing/selftests/kvm/x86/hyperv_cpuid.c | 47 +++++--- 30 files changed, 420 insertions(+), 427 deletions(-)