]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - rpmsg/rpmsg.git/commitdiff
TEMP: remoteproc: call the non-zeroing allocation function
authorAngela Stegmaier <angelabaker@ti.com>
Fri, 13 Sep 2019 19:47:09 +0000 (14:47 -0500)
committerSuman Anna <s-anna@ti.com>
Mon, 23 Sep 2019 01:46:54 +0000 (20:46 -0500)
For DMA pool scenario the plugged in allocation ops are not
used for carveout allocation. It is necessary to call a differnt
function that does not zero the DMA pool memory gotten from
the call to dma_alloc_coherent.

Call the dma_malloc_coherent (non-zeroing) api in the case
of late attach to guarantee that the memory is not zero-ed for
either a CMA or DMA pool. The memory for virtio rings is not
used in U-Boot, so need not use the non-zeroing function.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
drivers/remoteproc/remoteproc_core.c

index aba45c21ea473aa5640fa864512373e369b067d0..128e7d6ace0cde49e65b37f62b8af4b12144230c 100644 (file)
@@ -796,7 +796,13 @@ static int rproc_handle_carveout(struct rproc *rproc,
        if (!carveout)
                return -ENOMEM;
 
-       va = dma_alloc_coherent(dev->parent, rsc->len, &dma, GFP_KERNEL);
+       if (rproc->late_attach) {
+               va = dma_malloc_coherent(dev->parent, rsc->len, &dma,
+                                        GFP_KERNEL);
+       } else {
+               va = dma_alloc_coherent(dev->parent, rsc->len, &dma,
+                                       GFP_KERNEL);
+       }
        if (!va) {
                dev_err(dev->parent,
                        "failed to allocate dma memory: len 0x%x\n", rsc->len);