+42
−35
Loading
The per-IPI parent allocation loop returns immediately on failure and leaks any parent interrupts allocated by earlier iterations. The GICv5 LPI domain now owns LPI allocation and teardown internally, but its irq_domain callbacks still reject requests where nr_irqs is greater than one. This forces child domains to allocate and free LPIs one at a time even when the interrupt core requests a contiguous range. Handle multi-interrupt allocation and teardown in the LPI domain by iterating over the requested range and unwinding any partially allocated state on failure. Allocate the parent LPIs for the IPI domain with a single range request as well, which cures the leakage problem. Fixes: 0f010132 ("irqchip/gic-v5: Add GICv5 LPI/IPI support") Signed-off-by:Sascha Bischoff <sascha.bischoff@arm.com> Signed-off-by:
Thomas Gleixner <tglx@kernel.org> Reviewed-by:
Marc Zyngier <maz@kernel.org> Reviewed-by:
Lorenzo Pieralisi <lpieralisi@kernel.org> Cc: stable@vger.kernel.org Link: https://patch.msgid.link/20260506093634.382062-3-sascha.bischoff@arm.com