[PATCH 0/2] KVM: arm64: vgic-its: LPI pending-state fixes for DISCARD and CLEAR

Fuad Tabba fuad.tabba at linux.dev
Wed Oct 28 10:33:17 PDT 2026


Hi folks,

Two follow-ups to my DISCARD fix [1], for LPI pending state that KVM
keeps after the guest has removed it. Hopefully in time for the next
fixes pull.

The first closes a window in that fix in which the guest can still take
the LPI it discarded.

The second does for CLEAR what that fix did for DISCARD. Without it,
the guest can take an LPI that it has cleared, and a racing CLEAR can
trip the WARN_ON() in vgic_v3_compute_lr().

In my reproducer, the guest takes the LPI after the CLEAR in every run
without the second, and doesn't in any run with it.

Based on kvm-arm64/cross-vcpu-sync as merged in kvmarm/fixes, which both
patches build on (e99ff76f4a02b; also applies to kvmarm/fixes
79f3724ca8913).

Cheers,
/fuad

[1] https://lore.kernel.org/all/20261013081646.933312-3-fuad.tabba@linux.dev/

Fuad Tabba (2):
  KVM: arm64: vgic-its: Clear an unqueued LPI before dropping its lock
  KVM: arm64: vgic-its: Remove the pending state of a cleared LPI

 arch/arm64/kvm/vgic/vgic-its.c | 65 ++++++++++++++++++----------------
 1 file changed, 35 insertions(+), 30 deletions(-)


base-commit: e99ff76f4a02be8542e2c3ecc8843d7339a0200d
-- 
2.47.3




More information about the linux-arm-kernel mailing list