Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a8b0c6b authored by Wei Yongjun's avatar Wei Yongjun Committed by Vinod Koul
Browse files

dmaengine: at_xdmac: fix to pass correct device identity to free_irq()



free_irq() expects the same device identity that was passed to
corresponding request_irq(), otherwise the IRQ is not freed.

Fixes: e1f7c9ee ("dmaengine: at_xdmac: creation of the atmel eXtended DMA Controller driver")
Signed-off-by: default avatarWei Yongjun <weiyj.lk@gmail.com>
Acked-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 93e11eb1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2067,7 +2067,7 @@ static int at_xdmac_probe(struct platform_device *pdev)
err_clk_disable:
	clk_disable_unprepare(atxdmac->clk);
err_free_irq:
	free_irq(atxdmac->irq, atxdmac->dma.dev);
	free_irq(atxdmac->irq, atxdmac);
	return ret;
}

@@ -2081,7 +2081,7 @@ static int at_xdmac_remove(struct platform_device *pdev)
	dma_async_device_unregister(&atxdmac->dma);
	clk_disable_unprepare(atxdmac->clk);

	free_irq(atxdmac->irq, atxdmac->dma.dev);
	free_irq(atxdmac->irq, atxdmac);

	for (i = 0; i < atxdmac->dma.chancnt; i++) {
		struct at_xdmac_chan *atchan = &atxdmac->chan[i];