]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dmaengine: imx-sdma: Fix memory leak
authorSascha Hauer <s.hauer@pengutronix.de>
Mon, 16 Dec 2019 10:53:28 +0000 (11:53 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Feb 2020 07:38:20 +0000 (08:38 +0100)
commit7ac78dd1e0992fd6d2ae375cc0dd6456c632f605
tree1741af1013fcf598f97ffac06937dfd35fc98e5a
parentdfce2b70f599ecbbf5b597928085d4d86038aa31
dmaengine: imx-sdma: Fix memory leak

[ Upstream commit 02939cd167095f16328a1bd5cab5a90b550606df ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/imx-sdma.c