[PATCH v2] KVM: arm/arm64: GICv4: Do not perform a map to a mapped vLPI

Marc Zyngier maz at kernel.org
Mon Nov 20 01:15:48 PST 2023


On 2023-11-19 10:49, Kunkun Jiang wrote:
> Before performing a map, let's check whether the vLPI has been
> mapped. This corresponds to checking whether a vLPI is valid
> before unmap it.

I don't understand this last sentence. Mapping and unmapping
are two different actions, and we shouldn't conflate them.

> 
> Fixes: 196b136498b3 ("KVM: arm/arm64: GICv4: Wire mapping/unmapping of
> VLPIs in VFIO irq bypass")
> Signed-off-by: Kunkun Jiang <jiangkunkun at huawei.com>
> ---
>  arch/arm64/kvm/vgic/vgic-v4.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm64/kvm/vgic/vgic-v4.c 
> b/arch/arm64/kvm/vgic/vgic-v4.c
> index 339a55194b2c..fb60bbb94460 100644
> --- a/arch/arm64/kvm/vgic/vgic-v4.c
> +++ b/arch/arm64/kvm/vgic/vgic-v4.c
> @@ -436,6 +436,11 @@ int kvm_vgic_v4_set_forwarding(struct kvm *kvm, 
> int virq,
>  	if (ret)
>  		goto out;
> 
> +	if (irq->hw) {
> +		ret = 0;

ret is obviously already 0.

> +		goto out;
> +	}
> +
>  	/*
>  	 * Emit the mapping request. If it fails, the ITS probably
>  	 * isn't v4 compatible, so let's silently bail out. Holding

Furthermore, this really deserves a comment. Something like:

/* Silently exit if the vLPI is already mapped */

With these changes:

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

Oliver, can you please apply these changes and queue it as a fix
for 6.7?

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...



More information about the linux-arm-kernel mailing list