dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
authorWenwen Wang <wenwen@cs.uga.edu>
Fri, 16 Aug 2019 06:56:08 +0000 (01:56 -0500)
committerVinod Koul <vkoul@kernel.org>
Tue, 20 Aug 2019 11:46:17 +0000 (17:16 +0530)
If devm_request_irq() fails to disable all interrupts, no cleanup is
performed before retuning the error. To fix this issue, invoke
omap_dma_free() to do the cleanup.

Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/1565938570-7528-1-git-send-email-wenwen@cs.uga.edu
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/ti/omap-dma.c

index ba27802efcd0a900609893931e2f2fc4555dac0c..d07c0d5de7a256388e1806afa4264e91f2f51e2d 100644 (file)
@@ -1540,8 +1540,10 @@ static int omap_dma_probe(struct platform_device *pdev)
 
                rc = devm_request_irq(&pdev->dev, irq, omap_dma_irq,
                                      IRQF_SHARED, "omap-dma-engine", od);
-               if (rc)
+               if (rc) {
+                       omap_dma_free(od);
                        return rc;
+               }
        }
 
        if (omap_dma_glbl_read(od, CAPS_0) & CAPS_0_SUPPORT_LL123)