]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitdd207de4430718d209b843cb51ccc7c428d0281d
treedd71cf52ac4dd8a03e3516c37e2e7499f920c52e
parentd8fa2e8cb89b344f013705714767e60d310881a5
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