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-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html