]> 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)
commit3d886683778fac1de7bb2fc8dfe08b0f379b2ed6
treedd71cf52ac4dd8a03e3516c37e2e7499f920c52e
parent2eb47ebe98cec781d645d6501062cc36ce969738
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