Re: [PATCHv4 07/15] dmaengine: fsldma: fix request_irqs unwind freeing unregistered IRQ
From: Frank Li <hidden>
Date: 2026-06-11 15:32:05
Also in:
dmaengine, lkml, llvm
From: Frank Li <hidden>
Date: 2026-06-11 15:32:05
Also in:
dmaengine, lkml, llvm
On Wed, Jun 10, 2026 at 08:52:37PM -0700, Rosen Penev wrote:
When fsldma_request_irqs() fails on a per-channel IRQ, the unwind
loop starts at the current index i, which calls free_irq() on the
IRQ that request_irq() just failed to register. Decrement i before
the loop to skip the failed channel.
Bug introduced by commit 586f54672b33 ("dmaengine: fsldma: convert
to platform_get_irq_optional()").fix tag here Frank
Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev <redacted> --- drivers/dma/fsldma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 4475d50a94f5..c04a7fbd2ed0 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c@@ -1088,7 +1088,7 @@ static int fsldma_request_irqs(struct fsldma_device *fdev) return 0; out_unwind: - for (/* none */; i >= 0; i--) { + for (i--; i >= 0; i--) { chan = fdev->chan[i]; if (!chan) continue; --2.54.0