[GIT PULL] KVM: x86: Fix for 7.1-rcN

From: Sean Christopherson

Date: Fri May 29 2026 - 12:35:17 EST


Except for the execinfo.h non-glibc selftest change, all of these are fixes for
bugs that were introduced in recent kernels (treating enabling x2AVIC by
default as the "introduction" of the TLB bug).

The following changes since commit 2d5d3fc593c9b7e41bee86175d7b9e11f470072e:

KVM: VMX: introduce module parameter to disable CET (2026-05-13 15:38:22 +0200)

are available in the Git repository at:

https://github.com/kvm-x86/linux.git tags/kvm-x86-fixes-7.1-rc6

for you to fetch changes up to a9e18aa3263f356edae305e29830e5fe63d8597a:

KVM: SVM: Flush the current TLB when transitioning from xAVIC => x2AVIC (2026-05-21 14:24:57 -0700)

----------------------------------------------------------------
KVM x86 fixes for 7.1-rcN

- Include the kernel's linux/mman.h in KVM selftests to ensure MADV_COLLAPSE
is defined, as older libc versions may not provide it.

- Include execinfo.h if and only if KVM selftests are building against glibc,
and provide a test_dump_stack() for non-glibc builds.

- Fudge around an RCU splat in the emegerncy reboot code that is technically
a legitimate flaw, but in practice is a non-issue and fixing the flaw, e.g.
by adding locking, would incur meaningful risk, i.e. do more harm than good.

- Rate-limit global clock updates once again (but without delayed work), as
KVM was subtly relying on the old rate-limiting for NPT correction to guard
against "update storms" when running without a master clock on systems with
overcommitted CPUs.

- Fix a brown paper bag goof where KVM checked if ERAPS is "dirty" instead of
marking it dirty when emulating INVPCID.

- Flush the TLB when transitioning from xAVIC => x2AVIC to ensure the CPU TLB
doesn't contain AVIC-tagged entries for the APIC base GPA.

----------------------------------------------------------------
Emily Ehlert (1):
KVM: x86: Fix ERAPS RAP clear on INVPCID single-context invalidation

Hisam Mehboob (1):
KVM: selftests: Guard execinfo.h inclusion for non-glibc builds

Lei Chen (1):
KVM: x86: Rate-limit global clock updates on vCPU load

Mikhail Gavrilov (1):
x86/virt: Silence RCU lockdep splat in emergency virt callback path

Sean Christopherson (2):
KVM: selftests: Include sys/mman.h *and* linux/mman.h, via kvm_syscalls.h
KVM: SVM: Flush the current TLB when transitioning from xAVIC => x2AVIC

arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/kvm/svm/avic.c | 35 ++++++++++++++++++----
arch/x86/kvm/x86.c | 13 ++++++--
arch/x86/virt/hw.c | 15 +++++++++-
.../selftests/kvm/access_tracking_perf_test.c | 2 +-
tools/testing/selftests/kvm/guest_memfd_test.c | 2 +-
tools/testing/selftests/kvm/include/kvm_syscalls.h | 10 +++++++
tools/testing/selftests/kvm/include/test_util.h | 2 +-
tools/testing/selftests/kvm/lib/assert.c | 8 ++++-
tools/testing/selftests/kvm/lib/kvm_util.c | 2 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 2 +-
.../selftests/kvm/s390/shared_zeropage_test.c | 3 +-
tools/testing/selftests/kvm/s390/tprot.c | 2 +-
.../testing/selftests/kvm/set_memory_region_test.c | 2 +-
14 files changed, 79 insertions(+), 20 deletions(-)