diff options
Diffstat (limited to 'mm/page_cgroup.c')
| -rw-r--r-- | mm/page_cgroup.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c index 6c0081441a3..5bffada7cde 100644 --- a/mm/page_cgroup.c +++ b/mm/page_cgroup.c @@ -9,6 +9,7 @@  #include <linux/vmalloc.h>  #include <linux/cgroup.h>  #include <linux/swapops.h> +#include <linux/kmemleak.h>  static void __meminit  __init_page_cgroup(struct page_cgroup *pc, unsigned long pfn) @@ -126,6 +127,12 @@ static int __init_refok init_section_page_cgroup(unsigned long pfn)  			if (!base)  				base = vmalloc(table_size);  		} +		/* +		 * The value stored in section->page_cgroup is (base - pfn) +		 * and it does not point to the memory block allocated above, +		 * causing kmemleak false positives. +		 */ +		kmemleak_not_leak(base);  	} else {  		/*   		 * We don't have to allocate page_cgroup again, but  |