[GIT PULL] KVM fixes for Linux-6.14-rc6
From: Paolo Bonzini
Date: Sun Mar 09 2025 - 04:11:37 EST
Linus,
The following changes since commit 916b7f42b3b3b539a71c204a9b49fdc4ca92cd82:
kvm: retry nx_huge_page_recovery_thread creation (2025-03-01 02:54:18 -0500)
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 ea9bd29a9c0d757b3384ae3e633e6bbaddf00725:
Merge tag 'kvm-x86-fixes-6.14-rcN.2' of https://github.com/kvm-x86/linux into HEAD (2025-03-09 03:44:06 -0400)
This remains quite an active rc period, but these are "just" bugs and
issues introduced during this merge window. So, no big deal overall.
Paolo
----------------------------------------------------------------
KVM/arm64 fixes for 6.14, take #4
* Fix a couple of bugs affecting pKVM's PSCI relay implementation
when running in the hVHE mode, resulting in the host being entered
with the MMU in an unknown state, and EL2 being in the wrong mode.
x86:
* Set RFLAGS.IF in C code on SVM to get VMRUN out of the STI shadow.
* Ensure DEBUGCTL is context switched on AMD to avoid running the guest with
the host's value, which can lead to unexpected bus lock #DBs.
* Suppress DEBUGCTL.BTF on AMD (to match Intel), as KVM doesn't properly
emulate BTF. KVM's lack of context switching has meant BTF has always been
broken to some extent.
* Always save DR masks for SNP vCPUs if DebugSwap is *supported*, as the guest
can enable DebugSwap without KVM's knowledge.
* Fix a bug in mmu_stress_tests where a vCPU could finish the "writes to RO
memory" phase without actually generating a write-protection fault.
* Fix a printf() goof in the SEV smoke test that causes build failures with
-Werror.
* Explicitly zero EAX and EBX in CPUID.0x8000_0022 output when PERFMON_V2
isn't supported by KVM.
----------------------------------------------------------------
Ahmed Genidi (1):
KVM: arm64: Initialize SCTLR_EL1 in __kvm_hyp_init_cpu()
Mark Rutland (1):
KVM: arm64: Initialize HCR_EL2.E2H early
Paolo Bonzini (2):
Merge tag 'kvmarm-fixes-6.14-4' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
Merge tag 'kvm-x86-fixes-6.14-rcN.2' of https://github.com/kvm-x86/linux into HEAD
Sean Christopherson (11):
KVM: SVM: Set RFLAGS.IF=1 in C code, to get VMRUN out of the STI shadow
KVM: selftests: Assert that STI blocking isn't set after event injection
KVM: SVM: Drop DEBUGCTL[5:2] from guest's effective value
KVM: SVM: Suppress DEBUGCTL.BTF on AMD
KVM: x86: Snapshot the host's DEBUGCTL in common x86
KVM: SVM: Manually context switch DEBUGCTL if LBR virtualization is disabled
KVM: x86: Snapshot the host's DEBUGCTL after disabling IRQs
KVM: SVM: Save host DR masks on CPUs with DebugSwap
KVM: SVM: Don't rely on DebugSwap to restore host DR0..DR3
KVM: selftests: Ensure all vCPUs hit -EFAULT during initial RO stage
KVM: selftests: Fix printf() format goof in SEV smoke test
Xiaoyao Li (1):
KVM: x86: Explicitly zero EAX and EBX when PERFMON_V2 isn't supported by KVM
arch/arm64/include/asm/el2_setup.h | 31 +++++++++++---
arch/arm64/kernel/head.S | 22 ++--------
arch/arm64/kvm/hyp/nvhe/hyp-init.S | 10 +++--
arch/arm64/kvm/hyp/nvhe/psci-relay.c | 3 ++
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/kvm/cpuid.c | 2 +-
arch/x86/kvm/svm/sev.c | 24 +++++++----
arch/x86/kvm/svm/svm.c | 49 ++++++++++++++++++++++
arch/x86/kvm/svm/svm.h | 2 +-
arch/x86/kvm/svm/vmenter.S | 10 +----
arch/x86/kvm/vmx/vmx.c | 8 +---
arch/x86/kvm/vmx/vmx.h | 2 -
arch/x86/kvm/x86.c | 2 +
tools/testing/selftests/kvm/mmu_stress_test.c | 21 ++++++----
.../selftests/kvm/x86/nested_exceptions_test.c | 2 +
tools/testing/selftests/kvm/x86/sev_smoke_test.c | 3 +-
16 files changed, 130 insertions(+), 62 deletions(-)