Re: [PATCH] irqchip/gic-v4.1: Properly lock VPEs when doing a directLPI invalidation

From: Zenghui Yu
Date: Thu Jun 29 2023 - 10:52:40 EST


Hi Marc,

On 2023/6/17 15:32, Marc Zyngier wrote:
We normally rely on the irq_to_cpuid_[un]lock() primitives to make
sure nothing will change col->idx while performing a LPI invalidation.

"change col_idx while performing a vLPI invalidation"?

However, these primitives do not cover VPE doorbells, and we have
some open-coded locking for that. Unfortunately, this locking is
pretty bogus.

Instead, extend the above primitives to cover VPE doorbells and
convert the whole thing to it.

Fixes: f3a059219bc7 ("irqchip/gic-v4.1: Ensure mutual exclusion between vPE affinity change and RD access")
Reported-by: Kunkun Jiang <jiangkunkun@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
Cc: Zenghui Yu <yuzenghui@xxxxxxxxxx>
Cc: wanghaibin.wang@xxxxxxxxxx

Reviewed-by: Zenghui Yu <yuzenghui@xxxxxxxxxx>

Nit: I think the Subject header can be changed to 'irqchip/gic-v4' as
the bug it fixes only affects GICv4 HW. v4.1 is unaffected.

Thanks,
Zenghui