]> git.ipfire.org Git - thirdparty/linux.git/commit
KVM: arm64: Fix arch timer interrupts for GICv3-on-GICv5 guests
authorSascha Bischoff <sascha.bischoff@arm.com>
Wed, 20 May 2026 09:19:49 +0000 (10:19 +0100)
committerMarc Zyngier <maz@kernel.org>
Sat, 23 May 2026 14:07:41 +0000 (15:07 +0100)
commitbee399ea20c8fea361c0ada06afdec9fcbf6dfde
tree65bb7c260d1babc476b4802c6a2a16e83dfffed1
parentabf60331ebe9a9a7937a72aac7699c2907ab9307
KVM: arm64: Fix arch timer interrupts for GICv3-on-GICv5 guests

When running on a GICv5 host, we push an arch-timer-specific interrupt
domain for the timer interrupts. This interrupt domain is used to mask
the host interrupt when a GICv5 guest is running. However, this
interrupt domain is still in place when running with a GICv3 guest on
GICv5 hardware. The result is that some interrupt state changes are
not correctly propragated to the host irqchip driver for legacy
guests.

Explicitly pass irqchip state changes though to the host irqchip
driver when running a GICv3-based guest on a GICv5 host. This bypasses
all masking, and thereby operates just as a native GICv3 guest would,
with the exception of having an additional irq domain in the
hierarchy.

Fixes: 9491c63b6cd7 ("KVM: arm64: gic-v5: Enlighten arch timer for GICv5")
Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
Link: https://lore.kernel.org/r/20260520091949.542365-19-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/arch_timer.c