summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenji Chen <kenjchen@nvidia.com>2011-06-08 14:37:11 +0800
committerYuhao Ding <yding@nvidia.com>2011-06-17 17:12:22 -0700
commit63a20cb9aef250a407d44cdf3390f1f98bbb91c6 (patch)
treed91fe584800e1367bfe9b3a2397811d6790a7cde
parent8cf6e47dd3d4efaa3a1f0a15f1bd36ad34d3a951 (diff)
video: tegra: nvmap: free vm_struct in nvmap_munmap()
In nvmap_munmap(), remove_vm_area just remove the allocated memory page information. It doesn't de-allocate vm_struct. kfree() should be used to avoid memory leak in nvmap. Bug: 833796 Change-Id: I90c9cd58ae40661188cf6d00475a8ad490374184 Reviewed-on: http://git-master/r/35630 Tested-by: Kai Chih (Kenji) Chen <kenjchen@nvidia.com> Reviewed-by: Yu-Fong (Foster) Cho <ycho@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
-rw-r--r--drivers/video/tegra/nvmap/nvmap.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/video/tegra/nvmap/nvmap.c b/drivers/video/tegra/nvmap/nvmap.c
index e8d795006082..3ef9c92fe764 100644
--- a/drivers/video/tegra/nvmap/nvmap.c
+++ b/drivers/video/tegra/nvmap/nvmap.c
@@ -27,6 +27,7 @@
#include <linux/smp_lock.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>
+#include <linux/slab.h>
#include <asm/pgtable.h>
#include <asm/tlbflush.h>
@@ -698,6 +699,7 @@ void nvmap_munmap(struct nvmap_handle_ref *ref, void *addr)
addr -= (h->carveout->base & ~PAGE_MASK);
vm = remove_vm_area(addr);
BUG_ON(!vm);
+ kfree(vm);
nvmap_usecount_dec(h);
}
nvmap_handle_put(h);