Re: [PATCH v4 3/5] irqchip/imx-irqsteer: Dispose of parent IRQ mappings in remove()
Frank Li <[email protected]>
| Newsgroups | dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <aoW86-JvEaiDQC6r@SMW015318> |
On Wed, Aug 19, 2026 at 06:05:41PM +0900, [email protected] wrote: > From: Zhipeng Wang <[email protected]> > > 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 <[email protected]> > --- Reviewed-by: Frank Li <[email protected]> > 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 359b8ebc1bae..320082d3a632 100644 > --- a/drivers/irqchip/irq-imx-irqsteer.c > +++ b/drivers/irqchip/irq-imx-irqsteer.c > @@ -283,6 +283,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); > -- > 2.34.1 > >