Re: [PATCH] KVM: arm64: vgic-debug: Exit the iterator properly w/o LPI

From: Marc Zyngier
Date: Wed Aug 07 2024 - 06:02:19 EST


On Wed, 07 Aug 2024 06:20:24 +0100,
Zenghui Yu <yuzenghui@xxxxxxxxxx> wrote:
>
> In case the guest doesn't have any LPI, we previously relied on the
> iterator setting
>
> 'intid = nr_spis + VGIC_NR_PRIVATE_IRQS' && 'lpi_idx = 1'
>
> to exit the iterator. But it was broken with commit 85d3ccc8b75b ("KVM:
> arm64: vgic-debug: Use an xarray mark for debug iterator") -- the intid
> remains at 'nr_spis + VGIC_NR_PRIVATE_IRQS - 1', and we end up endlessly
> printing the last SPI's state.
>
> Consider that it's meaningless to search the LPI xarray and populate
> lpi_idx when there is no LPI, let's just skip the process for that case.
>
> The result is that
>
> * If there's no LPI, we focus on the intid and exit the iterator when it
> runs out of the valid SPI range.
> * Otherwise we keep the current logic and let the xarray drive the
> iterator.
>
> Fixes: 85d3ccc8b75b ("KVM: arm64: vgic-debug: Use an xarray mark for debug iterator")
> Signed-off-by: Zenghui Yu <yuzenghui@xxxxxxxxxx>

Acked-by: Marc Zyngier <maz@xxxxxxxxxx>

M.

--
Without deviation from the norm, progress is not possible.