Messages in this thread Patch in this message | | | From | Liu Song <> | Subject | [PATCH] mm/dmapool.c: avoid duplicate memset within dma_pool_alloc | Date | Thu, 14 Jul 2022 11:25:00 +0800 |
| |
From: Liu Song <liusong@linux.alibaba.com>
In "dma_direct_alloc", the allocated memory is explicitly set to 0. If use direct alloc, we need to avoid possible duplicate memset in dma_pool_alloc.
Signed-off-by: Liu Song <liusong@linux.alibaba.com> --- mm/dmapool.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/dmapool.c b/mm/dmapool.c index a7eb5d0..94f4859 100644 --- a/mm/dmapool.c +++ b/mm/dmapool.c @@ -21,6 +21,7 @@ #include <linux/device.h> #include <linux/dma-mapping.h> +#include <linux/dma-map-ops.h> #include <linux/dmapool.h> #include <linux/kernel.h> #include <linux/list.h> @@ -372,7 +373,7 @@ void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, #endif spin_unlock_irqrestore(&pool->lock, flags); - if (want_init_on_alloc(mem_flags)) + if (want_init_on_alloc(mem_flags) && get_dma_ops(pool->dev)) memset(retval, 0, pool->size); return retval; -- 1.8.3.1
| |