Re: [PATCH v5 4/9] irqchip/imx-irqsteer: Dispose of parent IRQ mappings in remove()

From: Radu Rendec

Date: Sun Aug 30 2026 - 12:30:44 EST


On Fri, 2026-08-21 at 19:10 +0900, Zhipeng.wang_1@xxxxxxxxxxx wrote:
> From: Zhipeng Wang <zhipeng.wang_1@xxxxxxx>
>
> probe() maps the parent output interrupts with irq_of_parse_and_map(),
> but remove() only unchains the handlers and never disposes of those
> mappings, leaking them on unbind. The child mappings handed out by the
> domain are freed by their consumers and, together with the domain, are
> now torn down by devres, so remove() only has to dispose of the parent
> mappings it created itself.
>
> Dispose of the parent mappings alongside the chained-handler teardown.
>
> Fixes: 0136afa08967 ("irqchip: Add driver for imx-irqsteer controller")
> Signed-off-by: Zhipeng Wang <zhipeng.wang_1@xxxxxxx>
> Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
> ---
>  drivers/irqchip/irq-imx-irqsteer.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-irqsteer.c
> index 571324de8bd1..071ab1ac1fe9 100644
> --- a/drivers/irqchip/irq-imx-irqsteer.c
> +++ b/drivers/irqchip/irq-imx-irqsteer.c
> @@ -287,6 +287,7 @@ static void imx_irqsteer_remove(struct platform_device *pdev)
>  
>   irq_set_chained_handler_and_data(irqsteer_data->irq[i],
>   NULL, NULL);
> + irq_dispose_mapping(irqsteer_data->irq[i]);
>   }
>  
>   clk_disable_unprepare(irqsteer_data->ipg_clk);

Reviewed-by: Radu Rendec <radu@xxxxxxxxxx>