From 9d909cf27b4399f3967fef4c53e4d07eba37f3c7 Mon Sep 17 00:00:00 2001 From: securecrt Date: Thu, 21 Jun 2012 13:01:23 +0800 Subject: [PATCH] msm: kgsl: Make sure kmemleak tool does not report incorrect mem leak. Certain memory allocations are not properly tracked by kmemleak tool, which makes it to incorrectly detect memory leak. Notify the tool by using kmemleak_not_leak() to ignore the memory allocation so that incorrect leaks report are avoided. --- drivers/gpu/msm/kgsl_sharedmem.c | 6 ++++++ drivers/gpu/msm/kgsl_sharedmem.h | 3 +++ 2 files changed, 9 insertions(+) mode change 100644 => 100755 drivers/gpu/msm/kgsl_sharedmem.h diff --git a/drivers/gpu/msm/kgsl_sharedmem.c b/drivers/gpu/msm/kgsl_sharedmem.c index 5e62b20c..09dbd7e8 100755 --- a/drivers/gpu/msm/kgsl_sharedmem.c +++ b/drivers/gpu/msm/kgsl_sharedmem.c @@ -14,6 +14,8 @@ #include #include #include +#include +#include #include "kgsl.h" #include "kgsl_sharedmem.h" @@ -361,6 +363,8 @@ _kgsl_sharedmem_vmalloc(struct kgsl_memdesc *memdesc, goto done; } + kmemleak_not_leak(memdesc->sg); + memdesc->sglen = sglen; sg_init_table(memdesc->sg, sglen); @@ -435,6 +439,8 @@ kgsl_sharedmem_vmalloc_user(struct kgsl_memdesc *memdesc, return -ENOMEM; } + kmemleak_not_leak(ptr); + protflags = GSL_PT_PAGE_RV; if (!(flags & KGSL_MEMFLAGS_GPUREADONLY)) protflags |= GSL_PT_PAGE_WV; diff --git a/drivers/gpu/msm/kgsl_sharedmem.h b/drivers/gpu/msm/kgsl_sharedmem.h old mode 100644 new mode 100755 index 61bcf05b..ae77aec2 --- a/drivers/gpu/msm/kgsl_sharedmem.h +++ b/drivers/gpu/msm/kgsl_sharedmem.h @@ -16,6 +16,7 @@ #include #include +#include /* * Convert a page to a physical address @@ -90,6 +91,8 @@ memdesc_sg_phys(struct kgsl_memdesc *memdesc, if (memdesc->sg == NULL) return -ENOMEM; + kmemleak_not_leak(memdesc->sg); + memdesc->sglen = 1; sg_init_table(memdesc->sg, 1); sg_set_page(&memdesc->sg[0], page, size, 0);