From fb2d52f3411303705fbe69b532c2dc94458de9d4 Mon Sep 17 00:00:00 2001 From: Simon Xue Date: Fri, 16 May 2025 18:40:18 +0800 Subject: [PATCH] Revert "dma-buf: heaps: rk_system_heap: Don't zero pages when dma_buf_release" This reverts commit fa31487d66821a3071d301f5294dce0729c4fb9a. Change-Id: I7d2f944a17d13205157267b6ba7aab649e15b84e Signed-off-by: Simon Xue --- drivers/dma-buf/heaps/rk_system_heap.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/dma-buf/heaps/rk_system_heap.c b/drivers/dma-buf/heaps/rk_system_heap.c index 960cd9117cab..d7cb5848f54c 100644 --- a/drivers/dma-buf/heaps/rk_system_heap.c +++ b/drivers/dma-buf/heaps/rk_system_heap.c @@ -416,6 +416,24 @@ static void system_heap_vunmap(struct dma_buf *dmabuf, struct iosys_map *map) iosys_map_clear(map); } +static int system_heap_zero_buffer(struct system_heap_buffer *buffer) +{ + struct sg_table *sgt = &buffer->sg_table; + struct sg_page_iter piter; + struct page *p; + void *vaddr; + int ret = 0; + + for_each_sgtable_page(sgt, &piter, 0) { + p = sg_page_iter_page(&piter); + vaddr = kmap_local_page(p); + memset(vaddr, 0, PAGE_SIZE); + kunmap_local(vaddr); + } + + return ret; +} + static void system_heap_dma_buf_release(struct dma_buf *dmabuf) { struct system_heap_buffer *buffer = dmabuf->priv; @@ -423,6 +441,9 @@ static void system_heap_dma_buf_release(struct dma_buf *dmabuf) struct scatterlist *sg; int i, j; + /* Zero the buffer pages before adding back to the pool */ + system_heap_zero_buffer(buffer); + table = &buffer->sg_table; for_each_sgtable_sg(table, sg, i) { struct page *page = sg_page(sg);