Subject: linux-next: manual merge of the kmemleak tree with the ftrace and slab trees

From: Stephen Rothwell <[email-masked]>
Date: Tue, 20 Jan 2009 16:59:33 +1100

Hi Catalin,

Today's linux-next merge of the kmemleak tree got a conflict in mm/slob.c
between commits 3eae2cb24a96509e0a38cc48dc1538a2826f4e33 ("kmemtrace: SLOB
hooks") from the ftrace tree and 6e9ed0cc4b963fde66ab47d9fb19147631e44555
("slob: clean up the code") from the slab tree and commit
1d5ae58738519c5228a022f22d560f27f99b8d4b ("kmemleak: Add the slob memory
allocation/freeing hooks") from the kmemleak tree.

I fixed it up (see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    [email-masked]
http://www.canb.auug.org.au/~sfr/

diff --cc mm/slob.c
index f6b0d07,30b870f..0000000
--- a/mm/slob.c
+++ b/mm/slob.c
@@@ -499,12 -482,9 +500,13 @@@ void *__kmalloc_node(size_t size, gfp_
  			page = virt_to_page(ret);
  			page->private = size;
  		}
 +
 +		kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC,
 +					  _RET_IP_, ret,
 +					  size, PAGE_SIZE << order, gfp, node);
  	}
  
+ 	kmemleak_alloc(ret, size, 1, gfp);
  	return ret;
  }
  EXPORT_SYMBOL(__kmalloc_node);
@@@ -515,9 -495,10 +517,10 @@@ void kfree(const void *block
  
  	if (unlikely(ZERO_OR_NULL_PTR(block)))
  		return;
+ 	kmemleak_free(block);
  
 -	sp = (struct slob_page *)virt_to_page(block);
 -	if (slob_page(sp)) {
 +	sp = slob_page(block);
 +	if (is_slob_page(sp)) {
  		int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
  		unsigned int *m = (unsigned int *)(block - align);
  		slob_free(m, *m + align);