]> 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)
committerVinod Koul <vkoul@kernel.org>
Mon, 22 Jan 2024 11:29:33 +0000 (16:59 +0530)
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>
drivers/dma/fsl-qdma.c

index 28c4e86bbcd2e2703b96e6a382f90a9f3770bdd1..9b141369bea5dc9337627e1844a43743473381d5 100644 (file)
@@ -514,11 +514,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 +