[PATCH] dmaengine: tegra: Fix memory leak in terminate_all()

Akhil R posted 1 patch 2 years, 7 months ago
drivers/dma/tegra186-gpc-dma.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] dmaengine: tegra: Fix memory leak in terminate_all()
Posted by Akhil R 2 years, 7 months ago
Terminate vdesc when terminating an ongoing transfer.
This will ensure that the vdesc is present in the desc_terminated list
The descriptor will be freed later in desc_free_list().

This fixes the memory leaks which can happen when terminating an
ongoing transfer.

Fixes: ee17028009d4 ("dmaengine: tegra: Add tegra gpcdma driver")
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
 drivers/dma/tegra186-gpc-dma.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c
index 1d1180db6d4e..8f67f453a492 100644
--- a/drivers/dma/tegra186-gpc-dma.c
+++ b/drivers/dma/tegra186-gpc-dma.c
@@ -711,6 +711,7 @@ static int tegra_dma_terminate_all(struct dma_chan *dc)
 			return err;
 		}
 
+		vchan_terminate_vdesc(&tdc->dma_desc->vd);
 		tegra_dma_disable(tdc);
 		tdc->dma_desc = NULL;
 	}
-- 
2.17.1
Re: [PATCH] dmaengine: tegra: Fix memory leak in terminate_all()
Posted by Vinod Koul 2 years, 7 months ago
On 18-01-23, 17:28, Akhil R wrote:
> Terminate vdesc when terminating an ongoing transfer.
> This will ensure that the vdesc is present in the desc_terminated list
> The descriptor will be freed later in desc_free_list().
> 
> This fixes the memory leaks which can happen when terminating an
> ongoing transfer.

Applied, thanks

-- 
~Vinod