Re: [PATCH 0/2] KVM: arm64: vgic: LPI fixes for redistributors with LPIs disabled
From: Oliver Upton
Date: Tue Oct 27 2026 - 19:53:38 EST
On Mon, Oct 26, 2026 at 09:28:00AM +0000, Fuad Tabba wrote:
> Hi folks,
>
> Two fixes on top of Marc's cross-CPU vcpu pausing series [1], for LPIs
> whose redistributor has LPIs disabled. Without them, the guest can take
> such an LPI with EnableLPIs clear, or lose one mapped before it enables
> them.
>
> The first is the vgic_target_oracle() change Oliver suggested on v2 of
> that series [2]. It stops an LPI from being queued to a redistributor
> with EnableLPIs clear once the disable path has retired the vCPU's AP
> list. With that check, the path has to pause the vCPU before clearing
> EnableLPIs, so that the retire still finds its LPIs.
>
> With the second, an LPI mapped while its redistributor has LPIs
> disabled keeps its pending bit when they're enabled. The second relies
> on the first to keep such an LPI off the AP list until the enable.
>
> Reproducers for the INVALL case in the first and the map in the second
> fail in every run without the patch and pass with it.
>
> Based on kvm-arm64/cross-vcpu-sync as merged in kvmarm/fixes, which the
> first builds on (e99ff76f4a02b; also applies to kvmarm/fixes
> 309e1d2215255).
>
> Cheers,
> /fuad
>
> [1] https://lore.kernel.org/all/20261015100539.1011760-1-maz@xxxxxxxxxx/
> [2] https://lore.kernel.org/all/asf87i2RDh-WksL-@xxxxxxxxxx/
>
> Fuad Tabba (2):
> KVM: arm64: vgic: Don't forward LPIs to a redistributor with LPIs
> disabled
> KVM: arm64: vgic-v3: Don't drop a pending LPI mapped with LPIs
> disabled
Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx>
> arch/arm64/kvm/vgic/vgic-mmio-v3.c | 31 ++++++++++++++++--------------
> arch/arm64/kvm/vgic/vgic-v3.c | 3 ++-
> arch/arm64/kvm/vgic/vgic.c | 12 ++++++++----
> 3 files changed, 27 insertions(+), 19 deletions(-)
>
>
> base-commit: e99ff76f4a02be8542e2c3ecc8843d7339a0200d
> --
> 2.47.3
>
>