Merge tag 'lsk-v3.10-android-15.01'
[firefly-linux-kernel-4.4.55.git] / mm / mmap.c
index 513286cff3a23e66ea5a8c0c98fa76a6e56e7bcf..fa5cb89348bad2b034e3f2f9d82cac8e06390018 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2574,6 +2574,16 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
        detach_vmas_to_be_unmapped(mm, vma, prev, end);
        unmap_region(mm, vma, prev, start, end);
 
+#ifdef CONFIG_ARCH_ROCKCHIP
+       {
+               extern int ion_munmap(void *dmabuf, struct vm_area_struct *vma);
+               extern int dma_buf_is_dma_buf(struct file *file);
+               if (vma->vm_file && dma_buf_is_dma_buf(vma->vm_file)) {
+                       ion_munmap(vma->vm_file->private_data, vma);
+               }
+       }
+#endif
+
        /* Fix up all other VM information */
        remove_vma_list(mm, vma);