]> git.itanic.dy.fi Git - linux-stable/commitdiff
dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 7 Jan 2024 10:02:04 +0000 (11:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Feb 2024 07:25:06 +0000 (08:25 +0100)
[ 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: b092529e0aa0 ("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>
drivers/dma/fsl-qdma.c

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