|
@@ -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;
|
|
|
}
|