diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-12 12:24:35 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-12 12:24:35 -0700 | 
| commit | 7638d5322bd89d49e013a03fe2afaeb6d214fabd (patch) | |
| tree | cfafc7c6c9f169a7a308c290363dde765e21735d /mm/slub.c | |
| parent | dd0d9a46f573b086a67522f819566427dba9c4c7 (diff) | |
| parent | 264ef8a904943ed7d0b04fa958894d7a5c2b2c61 (diff) | |
| download | olio-linux-3.10-7638d5322bd89d49e013a03fe2afaeb6d214fabd.tar.xz olio-linux-3.10-7638d5322bd89d49e013a03fe2afaeb6d214fabd.zip  | |
Merge branch 'kmemleak' of git://linux-arm.org/linux-2.6
* 'kmemleak' of git://linux-arm.org/linux-2.6:
  kmemleak: Remove alloc_bootmem annotations introduced in the past
  kmemleak: Add callbacks to the bootmem allocator
  kmemleak: Allow partial freeing of memory blocks
  kmemleak: Trace the kmalloc_large* functions in slub
  kmemleak: Scan objects allocated during a scanning episode
  kmemleak: Do not acquire scan_mutex in kmemleak_open()
  kmemleak: Remove the reported leaks number limitation
  kmemleak: Add more cond_resched() calls in the scanning thread
  kmemleak: Renice the scanning thread to +10
Diffstat (limited to 'mm/slub.c')
| -rw-r--r-- | mm/slub.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/mm/slub.c b/mm/slub.c index a9201d83178..b9f1491a58a 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -21,7 +21,6 @@  #include <linux/kmemcheck.h>  #include <linux/cpu.h>  #include <linux/cpuset.h> -#include <linux/kmemleak.h>  #include <linux/mempolicy.h>  #include <linux/ctype.h>  #include <linux/debugobjects.h> @@ -2835,13 +2834,15 @@ EXPORT_SYMBOL(__kmalloc);  static void *kmalloc_large_node(size_t size, gfp_t flags, int node)  {  	struct page *page; +	void *ptr = NULL;  	flags |= __GFP_COMP | __GFP_NOTRACK;  	page = alloc_pages_node(node, flags, get_order(size));  	if (page) -		return page_address(page); -	else -		return NULL; +		ptr = page_address(page); + +	kmemleak_alloc(ptr, size, 1, flags); +	return ptr;  }  #ifdef CONFIG_NUMA @@ -2926,6 +2927,7 @@ void kfree(const void *x)  	page = virt_to_head_page(x);  	if (unlikely(!PageSlab(page))) {  		BUG_ON(!PageCompound(page)); +		kmemleak_free(x);  		put_page(page);  		return;  	}  |