mm: kmemleak: disable early logging in case of error
authorCatalin Marinas <catalin.marinas@arm.com>
Tue, 13 Aug 2019 22:37:34 +0000 (15:37 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 13 Aug 2019 23:06:52 +0000 (16:06 -0700)
commitfcf3a5b62f431ce9feeac73afbe128b7b6395dbc
treedd71cf52ac4dd8a03e3516c37e2e7499f920c52e
parent5336e52c9e46afa69b7a85a0a091f0e4daa23d6e
mm: kmemleak: disable early logging in case of error

If an error occurs during kmemleak_init() (e.g.  kmem cache cannot be
created), kmemleak is disabled but kmemleak_early_log remains enabled.
Subsequently, when the .init.text section is freed, the log_early()
function no longer exists.  To avoid a page fault in such scenario,
ensure that kmemleak_disable() also disables early logging.

Link: http://lkml.kernel.org/r/20190731152302.42073-1-catalin.marinas@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/kmemleak.c