vm_map_ram can keep mappings around after the vm_unmap_ram.  Using that
with non-PAGE_KERNEL mappings can lead to all kinds of aliasing issues.

Signed-off-by: Christoph Hellwig <h...@lst.de>
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Acked-by: Peter Zijlstra (Intel) <pet...@infradead.org>
---
 drivers/staging/android/ion/ion_heap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/android/ion/ion_heap.c 
b/drivers/staging/android/ion/ion_heap.c
index 473b465724f1..0755b11348ed 100644
--- a/drivers/staging/android/ion/ion_heap.c
+++ b/drivers/staging/android/ion/ion_heap.c
@@ -99,12 +99,12 @@ int ion_heap_map_user(struct ion_heap *heap, struct 
ion_buffer *buffer,
 
 static int ion_heap_clear_pages(struct page **pages, int num, pgprot_t pgprot)
 {
-       void *addr = vm_map_ram(pages, num, -1, pgprot);
+       void *addr = vmap(pages, num, VM_MAP, pgprot);
 
        if (!addr)
                return -ENOMEM;
        memset(addr, 0, PAGE_SIZE * num);
-       vm_unmap_ram(addr, num);
+       vunmap(addr);
 
        return 0;
 }
-- 
2.25.1

Reply via email to