linux-next: manual merge of the kmemcheck tree with the kmemleaktree
From: Stephen Rothwell
Date: Mon Jun 01 2009 - 04:11:24 EST
Hi all,
Today's linux-next merge of the kmemcheck tree got a conflict in
mm/slub.c between commit 5247520db9023300947e5b77943bc0719f33d4b9
("kmemleak: Add the slub memory allocation/freeing hooks") from the
kmemleak tree and commit 18fd427debcf37c06917b55295df682fd05fee76 ("slub:
add hooks for kmemcheck") from the kmemcheck tree.
I fixed it up (see below) and can carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
diff --cc mm/slub.c
index 6674a79,4ac5e3e..0000000
--- a/mm/slub.c
+++ b/mm/slub.c
@@@ -144,10 -143,10 +145,10 @@@
* Set of flags that will prevent slab merging
*/
#define SLUB_NEVER_MERGE (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER | \
- SLAB_TRACE | SLAB_DESTROY_BY_RCU)
+ SLAB_TRACE | SLAB_DESTROY_BY_RCU | SLAB_NOLEAKTRACE)
#define SLUB_MERGE_SAME (SLAB_DEBUG_FREE | SLAB_RECLAIM_ACCOUNT | \
- SLAB_CACHE_DMA)
+ SLAB_CACHE_DMA | SLAB_NOTRACK)
#ifndef ARCH_KMALLOC_MINALIGN
#define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long)
@@@ -1618,7 -1637,7 +1641,8 @@@ static __always_inline void *slab_alloc
if (unlikely((gfpflags & __GFP_ZERO) && object))
memset(object, 0, objsize);
+ kmemleak_alloc_recursive(object, objsize, 1, s->flags, gfpflags);
+ kmemcheck_slab_alloc(s, gfpflags, object, c->objsize);
return object;
}
@@@ -1748,9 -1767,9 +1772,10 @@@ static __always_inline void slab_free(s
struct kmem_cache_cpu *c;
unsigned long flags;
+ kmemleak_free_recursive(x, s->flags);
local_irq_save(flags);
c = get_cpu_slab(s, smp_processor_id());
+ kmemcheck_slab_free(s, object, c->objsize);
debug_check_no_locks_freed(object, c->objsize);
if (!(s->flags & SLAB_DEBUG_OBJECTS))
debug_check_no_obj_freed(object, c->objsize);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/