diff options
author | Kenji Chen <kenjchen@nvidia.com> | 2011-06-08 14:37:11 +0800 |
---|---|---|
committer | Yuhao Ding <yding@nvidia.com> | 2011-06-17 17:12:22 -0700 |
commit | 63a20cb9aef250a407d44cdf3390f1f98bbb91c6 (patch) | |
tree | d91fe584800e1367bfe9b3a2397811d6790a7cde | |
parent | 8cf6e47dd3d4efaa3a1f0a15f1bd36ad34d3a951 (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.c | 2 |
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); |