dmaengine: pl330: use the same attributes when freeing pl330->mcode_cpu
authorFuqian Huang <huangfq.daxian@gmail.com>
Fri, 26 Jul 2019 10:59:47 +0000 (18:59 +0800)
committerVinod Koul <vkoul@kernel.org>
Thu, 8 Aug 2019 13:19:43 +0000 (18:49 +0530)
In function dmac_alloc_resources(), pl330->mcode_cpu is allocated using
dma_alloc_attrs() but freed with dma_free_coherent().
Use the correct dma_free_attrs() function to free pl330->mcode_cpu.

Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
Link: https://lore.kernel.org/r/20190726105947.25342-1-huangfq.daxian@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/pl330.c

index 1163af2ba4a36fef2f313dd09236eee4039236de..6cce9ef61b2944020d67c821606e3451bd2e33bb 100644 (file)
@@ -1922,9 +1922,10 @@ static int dmac_alloc_resources(struct pl330_dmac *pl330)
        if (ret) {
                dev_err(pl330->ddma.dev, "%s:%d Can't to create channels for DMAC!\n",
                        __func__, __LINE__);
-               dma_free_coherent(pl330->ddma.dev,
+               dma_free_attrs(pl330->ddma.dev,
                                chans * pl330->mcbufsz,
-                               pl330->mcode_cpu, pl330->mcode_bus);
+                               pl330->mcode_cpu, pl330->mcode_bus,
+                               DMA_ATTR_PRIVILEGED);
                return ret;
        }
 
@@ -2003,9 +2004,9 @@ static void pl330_del(struct pl330_dmac *pl330)
        /* Free DMAC resources */
        dmac_free_threads(pl330);
 
-       dma_free_coherent(pl330->ddma.dev,
+       dma_free_attrs(pl330->ddma.dev,
                pl330->pcfg.num_chan * pl330->mcbufsz, pl330->mcode_cpu,
-               pl330->mcode_bus);
+               pl330->mcode_bus, DMA_ATTR_PRIVILEGED);
 }
 
 /* forward declaration */