X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Fkmemleak.c;h=45eb6217bf38e764bfb65d90f29ae2bb46f77886;hb=4edc2ca388d62abffe38149f6ac00e749ea721c5;hp=c833addd94d74703a90e9bed51d759726e77f280;hpb=2437dcbf555bff04e4ee8b8dba4587f946c1cd3d;p=~andy%2Flinux diff --git a/mm/kmemleak.c b/mm/kmemleak.c index c833addd94d..45eb6217bf3 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -1036,7 +1036,7 @@ void __ref kmemleak_scan_area(const void *ptr, size_t size, gfp_t gfp) { pr_debug("%s(0x%p)\n", __func__, ptr); - if (atomic_read(&kmemleak_enabled) && ptr && !IS_ERR(ptr)) + if (atomic_read(&kmemleak_enabled) && ptr && size && !IS_ERR(ptr)) add_scan_area((unsigned long)ptr, size, gfp); else if (atomic_read(&kmemleak_early_log)) log_early(KMEMLEAK_SCAN_AREA, ptr, size, 0); @@ -1757,6 +1757,7 @@ void __init kmemleak_init(void) #ifdef CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF if (!kmemleak_skip_disable) { + atomic_set(&kmemleak_early_log, 0); kmemleak_disable(); return; }