dmaengine: imx-sdma: Fix memory leak
authorSascha Hauer <s.hauer@pengutronix.de>
Mon, 16 Dec 2019 10:53:28 +0000 (11:53 +0100)
committerVinod Koul <vkoul@kernel.org>
Thu, 26 Dec 2019 04:34:19 +0000 (10:04 +0530)
commit02939cd167095f16328a1bd5cab5a90b550606df
tree416ffc79429fa3a74b1dd139a910ec052e137321
parenta1ff6a07f5a3951fcac84f064a76d1ad79c10e40
dmaengine: imx-sdma: Fix memory leak

The current descriptor is not on any list of the virtual DMA channel.
Once sdma_terminate_all() is called when a descriptor is currently
in flight then this one is forgotten to be freed. We have to call
vchan_terminate_vdesc() on this descriptor to re-add it to the lists.
Now that we also free the currently running descriptor we can (and
actually have to) remove the current descriptor from its list also
for the cyclic case.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Robin Gong <yibin.gong@nxp.com>
Tested-by: Robin Gong <yibin.gong@nxp.com>
Link: https://lore.kernel.org/r/20191216105328.15198-10-s.hauer@pengutronix.de
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/imx-sdma.c