Currently, kmemleak_early_log is disabled at the beginning of the kmemleak_init() function, before the full kmemleak tracing is actually enabled. In this small window, kmem_cache_create() is called by kmemleak which triggers additional memory allocation that are not traced. This patch moves the kmemleak_early_log disabling further down and at the same time with full kmemleak enabling. Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/kmemleak.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mm/kmemleak.c b/mm/kmemleak.c index 61a64ed2fbef..0cd6aabd45a0 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -1809,8 +1809,6 @@ void __init kmemleak_init(void) int i; unsigned long flags; - kmemleak_early_log = 0; - #ifdef CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF if (!kmemleak_skip_disable) { kmemleak_disable(); @@ -1833,8 +1831,9 @@ void __init kmemleak_init(void) if (kmemleak_error) { local_irq_restore(flags); return; - } else - kmemleak_enabled = 1; + } + kmemleak_early_log = 0; + kmemleak_enabled = 1; local_irq_restore(flags); /* -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>