[PATCH v4 6/6] irqchip/gic-v3-its: Remove redundant check in its_vpe_db_proxy_unmap_locked()

Radu Rendec radu at rendec.net
Sat Jul 4 09:32:44 PDT 2026


On Thu, 2026-07-02 at 11:30 +0800, Kemeng Shi wrote:
> The high level functions already ensure that gic_rdists->has_rvpeid
> is false before calling its_vpe_db_proxy_unmap_locked(), so we can
> remove the redundant check in its_vpe_db_proxy_unmap_locked()

That's true for what the code is *today*. By removing the check, you're
setting up a trap in case a new call to its_vpe_db_proxy_unmap_locked()
is added in the future with the assumption that it will do "the right
thing". The way I see these functions, they are not really "high level"
and "low level". For example, its_vpe_db_proxy_map_locked() is called
both by its_vpe_db_proxy_move() (which is another db_proxy function)
and by its_vpe_send_cmd() directly.

FWIW, the code you're removing is just this:
   0xffff8000806cf934 <+44>:	adrp	x0, 0xffff80008177e000 <static_ltree+784>
   0xffff8000806cf938 <+48>:	add	x4, x0, #0x348
   0xffff8000806cf93c <+52>:	ldr	x0, [x0, #840]
   0xffff8000806cf940 <+56>:	ldrb	w0, [x0, #45]
   0xffff8000806cf944 <+60>:	tbnz	w0, #0, 0xffff8000806cf9dc <its_vpe_db_proxy_unmap_locked+212>

I would argue that the gain in terms of both code size and speed is
negligible (and these functions are subject to inlining anyway).

> Signed-off-by: Kemeng Shi <shikemeng at huaweicloud.com>
> ---
>  drivers/irqchip/irq-gic-v3-its.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
> index 120f6f29e978..b0069fbe1e69 100644
> --- a/drivers/irqchip/irq-gic-v3-its.c
> +++ b/drivers/irqchip/irq-gic-v3-its.c
> @@ -3801,10 +3801,6 @@ static const struct irq_domain_ops its_domain_ops = {
>   */
>  static void its_vpe_db_proxy_unmap_locked(struct its_vpe *vpe)
>  {
> -	/* GICv4.1 doesn't use a proxy, so nothing to do here */
> -	if (gic_rdists->has_rvpeid)
> -		return;
> -
>  	/* Already unmapped? */
>  	if (vpe->vpe_proxy_event == -1)
>  		return;



More information about the linux-arm-kernel mailing list