[GIT PULL] KVM/arm64 fixes for 6.16, take #1

Marc Zyngier maz at kernel.org
Fri May 30 02:52:23 PDT 2025


Paolo,

Here's the first batch of fixes for KVM/arm64. Nothing very exciting,
except for yet another annoying race condition in the vgic init code
spotted by everybody's favourite backtrace generator (syzkaller).

Details in the tag below.

Please pull,

	M.

The following changes since commit 1b85d923ba8c9e6afaf19e26708411adde94fba8:

  Merge branch kvm-arm64/misc-6.16 into kvmarm-master/next (2025-05-23 10:59:43 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-fixes-6.16-1

for you to fetch changes up to 4d62121ce9b58ea23c8d62207cbc604e98ecdc0a:

  KVM: arm64: vgic-debug: Avoid dereferencing NULL ITE pointer (2025-05-30 10:24:49 +0100)

----------------------------------------------------------------
KVM/arm64 fixes for 6.16, take #1

- Make the irqbypass hooks resilient to changes in the GSI<->MSI
  routing, avoiding behind stale vLPI mappings being left behind. The
  fix is to resolve the VGIC IRQ using the host IRQ (which is stable)
  and nuking the vLPI mapping upon a routing change.

- Close another VGIC race where vCPU creation races with VGIC
  creation, leading to in-flight vCPUs entering the kernel w/o private
  IRQs allocated.

- Fix a build issue triggered by the recently added workaround for
  Ampere's AC04_CPU_23 erratum.

- Correctly sign-extend the VA when emulating a TLBI instruction
  potentially targeting a VNCR mapping.

- Avoid dereferencing a NULL pointer in the VGIC debug code, which can
  happen if the device doesn't have any mapping yet.

----------------------------------------------------------------
Marc Zyngier (3):
      arm64: sysreg: Drag linux/kconfig.h to work around vdso build issue
      KVM: arm64: Mask out non-VA bits from TLBI VA* on VNCR invalidation
      KVM: arm64: vgic-debug: Avoid dereferencing NULL ITE pointer

Oliver Upton (5):
      KVM: arm64: Use lock guard in vgic_v4_set_forwarding()
      KVM: arm64: Protect vLPI translation with vgic_irq::irq_lock
      KVM: arm64: Resolve vLPI by host IRQ in vgic_v4_unset_forwarding()
      KVM: arm64: Unmap vLPIs affected by changes to GSI routing information
      KVM: arm64: vgic-init: Plug vCPU vs. VGIC creation race

 arch/arm64/include/asm/sysreg.h  |  1 +
 arch/arm64/kvm/arm.c             | 26 +++++++++++-
 arch/arm64/kvm/nested.c          |  6 ++-
 arch/arm64/kvm/vgic/vgic-debug.c |  5 ++-
 arch/arm64/kvm/vgic/vgic-init.c  | 27 +++++++++++-
 arch/arm64/kvm/vgic/vgic-its.c   | 48 ++++++++++-----------
 arch/arm64/kvm/vgic/vgic-v4.c    | 92 ++++++++++++++++++++++------------------
 include/kvm/arm_vgic.h           |  3 +-
 8 files changed, 134 insertions(+), 74 deletions(-)



More information about the linux-arm-kernel mailing list