Arm:

- Add support for tracing in the standalone EL2 hypervisor code, which
  should help both debugging and performance analysis.  This uses the
  new infrastructure for 'remote' trace buffers that can be exposed
  by non-kernel entities such as firmware, and which came through the
  tracing tree.

- Add support for GICv5 Per Processor Interrupts (PPIs), as the starting
  point for supporting the new GIC architecture in KVM.

- Finally add support for pKVM protected guests, where pages are unmapped
  from the host as they are faulted into the guest and can be shared back
  from the guest using pKVM hypercalls.  Protected guests are created
  using a new machine type identifier.  As the elusive guestmem has not
  yet delivered on its promises, anonymous memory is also supported.

  This is only a first step towards full isolation from the host; for
  example, the CPU register state and DMA accesses are not yet isolated.
  Because this does not really yet bring fully what it promises, it is
  hidden behind CONFIG_ARM_PKVM_GUEST + 'kvm-arm.mode=protected', and
  also triggers TAINT_USER when a VM is created.  Caveat emptor.

- Rework the dreaded user_mem_abort() function to make it more
  maintainable, reducing the amount of state being exposed to the
  various helpers and rendering a substantial amount of state immutable.

- Expand the Stage-2 page table dumper to support NV shadow page tables
  on a per-VM basis.

- Tidy up the pKVM PSCI proxy code to be slightly less hard to follow.

- Fix both SPE and TRBE in non-VHE configurations so that they do not
  generate spurious, out of context table walks that ultimately lead
  to very bad HW lockups.

- A small set of patches fixing the Stage-2 MMU freeing in error cases.

- Tighten-up accepted SMC immediate value to be only #0 for host
  SMCCC calls.

- The usual cleanups and other selftest churn.

LoongArch:

- Use CSR_CRMD_PLV for kvm_arch_vcpu_in_kernel().

- Add DMSINTC irqchip in kernel support.

RISC-V:

- Fix steal time shared memory alignment checks

- Fix vector context allocation leak

- Fix array out-of-bounds in pmu_ctr_read() and pmu_fw_ctr_read_hi()

- Fix double-free of sdata in kvm_pmu_clear_snapshot_area()

- Fix integer overflow in kvm_pmu_validate_counter_mask()

- Fix shift-out-of-bounds in make_xfence_request()

- Fix lost write protection on huge pages during dirty logging

- Split huge pages during fault handling for dirty logging

- Skip CSR restore if VCPU is reloaded on the same core

- Implement kvm_arch_has_default_irqchip() for KVM selftests

- Factored-out ISA checks into separate sources

- Added hideleg to struct kvm_vcpu_config

- Factored-out VCPU config into separate sources

- Support configuration of per-VM HGATP mode from KVM user space

s390:

- Support for ESA (31-bit) guests inside nested hypervisors.

- Remove restriction on memslot alignment, which is not needed anymore with
  the new gmap code.

- Fix LPSW/E to update the bear (which of course is the breaking event
  address register).

x86:

- Shut up various UBSAN warnings on reading module parameter before they
  were initialized.

- Don't zero-allocate page tables that are used for splitting hugepages in
  the TDP MMU, as KVM is guaranteed to set all SPTEs in the page table and
  thus write all bytes.

- As an optimization, bail early when trying to unsync 4KiB mappings if the
  target gfn can just be mapped with a 2MiB hugepage.

x86 generic:

- Copy single-chunk MMIO write values into struct kvm_vcpu (more precisely
  struct kvm_mmio_fragment) to fix use-after-free stack bugs where KVM
  would dereference stack pointer after an exit to userspace.

- Clean up and comment the emulated MMIO code to try to make it easier to
  maintain (not necessarily "easy", but "easier").

- Move VMXON+VMXOFF and EFER.SVME toggling out of KVM (not *all* of VMX
  and SVM enabling) as it is needed for trusted I/O.

- Advertise support for AVX512 Bit Matrix Multiply (BMM) instructions

- Immediately fail the build if a required #define is missing in one of
  KVM's headers that is included multiple times.

- Reject SET_GUEST_DEBUG with -EBUSY if there's an already injected
  exception, mostly to prevent syzkaller from abusing the uAPI to
  trigger WARNs, but also because it can help prevent userspace from
  unintentionally crashing the VM.

- Exempt SMM from CPUID faulting on Intel, as per the spec.

- Misc hardening and cleanup changes.

x86 (AMD):

- Fix and optimize IRQ window inhibit handling for AVIC; make it per-vCPU
  so that KVM doesn't prematurely re-enable AVIC if multiple
  vCPUs have to-be-injected IRQs.

- Clean up and optimize the OSVW handling, avoiding a bug in which KVM would
  overwrite state when enabling virtualization on multiple CPUs in parallel.
  This should not be a problem because OSVW should usually be the same for
  all CPUs.

- Drop a WARN in KVM_MEMORY_ENCRYPT_REG_REGION where KVM complains about a
  "too large" size based purely on user input.

- Clean up and harden the pinning code for KVM_MEMORY_ENCRYPT_REG_REGION.

- Disallow synchronizing a VMSA of an already-launched/encrypted vCPU, as
  doing so for an SNP guest will crash the host due to an RMP violation
  page fault.

- Overhaul KVM's APIs for detecting SEV+ guests so that VM-scoped queries
  are required to hold kvm->lock, and enforce it by lockdep.  Fix various
  bugs where sev_guest() was not ensured to be stable for the whole
  duration of a function or ioctl.

- Convert a pile of kvm->lock SEV code to guard().

- Play nicer with userspace that does not enable KVM_CAP_EXCEPTION_PAYLOAD,
  for which KVM needs to set CR2 and DR6 as a response to ioctls such as
  KVM_GET_VCPU_EVENTS (even if the payload would end up in EXITINFO2
  rather than CR2, for example).  Only set CR2 and DR6 when consumption of
  the payload is imminent, but on the other hand force delivery of the
  payload in all paths where userspace retrieves CR2 or DR6.

- Use vcpu->arch.cr2 when updating vmcb12's CR2 on nested #VMEXIT instead
  of vmcb02->save.cr2.  The value is out of sync after a save/restore
  or after a #PF is injected into L2.

- Fix a class of nSVM bugs where some fields written by the CPU are not
  synchronized from vmcb02 to cached vmcb12 after VMRUN, and so are not
  up-to-date when saved by KVM_GET_NESTED_STATE.

- Fix a class of bugs where the ordering between KVM_SET_NESTED_STATE and
  KVM_SET_{S}REGS could cause vmcb02 to be incorrectly initialized after
  save+restore.

- Add a variety of missing nSVM consistency checks.

- Fix several bugs where KVM failed to correctly update VMCB fields on
  nested #VMEXIT.

- Fix several bugs where KVM failed to correctly synthesize #UD or #GP for
  SVM-related instructions.

- Add support for save+restore of virtualized LBRs (on SVM).

- Refactor various helpers and macros to improve clarity and (hopefully)
  make the code easier to maintain.

- Aggressively sanitize fields when copying from vmcb12, to guard against
  unintentionally allowing L1 to utilize yet-to-be-defined features.

- Fix several bugs where KVM botched rAX legality checks when emulating SVM
  instructions.  There are remaining issues in that KVM doesn't handle size
  prefix overrides for 64-bit guests.

- Fail emulation of VMRUN/VMLOAD/VMSAVE if mapping vmcb12 fails instead of
  somewhat arbitrarily synthesizing #GP (i.e. don't double down on AMD's
  architectural but sketchy behavior of generating #GP for "unsupported"
  addresses).

- Cache all used vmcb12 fields to further harden against TOCTOU bugs.

x86 (Intel):

- Drop obsolete branch hint prefixes from the VMX instruction macros.

- Use ASM_INPUT_RM() in __vmcs_writel() to coerce clang into using a
  register input when appropriate.

- Code cleanups.

guest_memfd:

- Don't mark guest_memfd folios as accessed, as guest_memfd doesn't support
  reclaim, the memory is unevictable, and there is no storage to write
  back to.

LoongArch selftests:

- Add KVM PMU test cases

s390 selftests:

- Enable more memory selftests.

x86 selftests:

- Add support for Hygon CPUs in KVM selftests.

- Fix a bug in the MSR test where it would get false failures on AMD/Hygon
  CPUs with exactly one of RDPID or RDTSCP.

- Add an MADV_COLLAPSE testcase for guest_memfd as a regression test for a
  bug where the kernel would attempt to collapse guest_memfd folios against
  KVM's will.
Merge tag 'kvm-s390-next-7.1-1' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD

- ESA nesting support
- 4k memslots
- LPSW/E fix