dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA

[ Upstream commit 3aa58cb51318e329d203857f7a191678e60bb714 ]

This dma_alloc_coherent() is undone neither in the remove function, nor in
the error handling path of fsl_qdma_probe().

Switch to the managed version to fix both issues.

Fixes: b092529e0a ("dmaengine: fsl-qdma: Add qDMA controller driver for Layerscape SoCs")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/7f66aa14f59d32b13672dde28602b47deb294e1f.1704621515.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Christophe JAILLET
2024-01-07 11:02:04 +01:00
committed by Greg Kroah-Hartman
parent fbe1c5c6a8
commit ae6769ba51

View File

@@ -514,11 +514,11 @@ static struct fsl_qdma_queue
queue_temp = queue_head + i + (j * queue_num); queue_temp = queue_head + i + (j * queue_num);
queue_temp->cq = queue_temp->cq =
dma_alloc_coherent(&pdev->dev, dmam_alloc_coherent(&pdev->dev,
sizeof(struct fsl_qdma_format) * sizeof(struct fsl_qdma_format) *
queue_size[i], queue_size[i],
&queue_temp->bus_addr, &queue_temp->bus_addr,
GFP_KERNEL); GFP_KERNEL);
if (!queue_temp->cq) if (!queue_temp->cq)
return NULL; return NULL;
queue_temp->block_base = fsl_qdma->block_base + queue_temp->block_base = fsl_qdma->block_base +