On Tue, Mar 3, 2026 at 4:25 PM Linus Walleij linusw@kernel.org wrote:
As of commit 62a9f5a85b98 "mm: introduce clear_pages() and clear_user_pages()" we can clear a range of pages with a potentially assembly-optimized call.
Instead of using a memset, use this helper to clear the whole range of pages from the CMA allocation.
Signed-off-by: Linus Walleij linusw@kernel.org
drivers/dma-buf/heaps/cma_heap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/dma-buf/heaps/cma_heap.c
b/drivers/dma-buf/heaps/cma_heap.c
index bd3370b9a3f6..f0bacf25ed9d 100644 --- a/drivers/dma-buf/heaps/cma_heap.c +++ b/drivers/dma-buf/heaps/cma_heap.c @@ -343,7 +343,7 @@ static struct dma_buf *cma_heap_allocate(struct
dma_heap *heap,
nr_clear_pages--; } } else {
memset(page_address(cma_pages), 0, size);
clear_pages(page_address(cma_pages), pagecount); } buffer->pages = kmalloc_objs(*buffer->pages, pagecount);
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f change-id: 20260303-cma-heap-clear-pages-540f3ac9f734
Best regards,
Linus Walleij linusw@kernel.org
Hi Linus,
I think we can also use clear_highpage (singular) instead of memset in the while loop above here to be a little more concise.
Thanks, T.J.
linaro-mm-sig@lists.linaro.org