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

Marc Zyngier maz at kernel.org
Wed Aug 7 03:01:17 PDT 2024


On Wed, 07 Aug 2024 06:20:24 +0100,
Zenghui Yu <yuzenghui at huawei.com> 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 at huawei.com>

Acked-by: Marc Zyngier <maz at kernel.org>

	M.

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



More information about the linux-arm-kernel mailing list