]> git.baikalelectronics.ru Git - kernel.git/commit
jump_label: Fix jump_label_text_reserved() vs __init
authorPeter Zijlstra <peterz@infradead.org>
Mon, 28 Jun 2021 11:24:10 +0000 (13:24 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 5 Jul 2021 08:46:20 +0000 (10:46 +0200)
commit695e769bf889bf5b21a2a14d0d722e1eb2751765
tree4b2c79e55dfcb10b406684c074ecc08cf3815b29
parentae47316ffcab179f6a49c19d6c0f813cac678cb1
jump_label: Fix jump_label_text_reserved() vs __init

It turns out that jump_label_text_reserved() was reporting __init text
as being reserved past the time when the __init text was freed and
re-used.

For a long time, this resulted in, at worst, not being able to kprobe
text that happened to land at the re-used address. However a recent
commit 2f23871e28d9 ("jump_label, x86: Emit short JMP") made it a
fatal mistake because it now needs to read the instruction in order to
determine the conflict -- an instruction that's no longer there.

Fixes: 5bde688b5120 ("jump label: Add jump_label_text_reserved() to reserve jump points")
Reported-by: kernel test robot <oliver.sang@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
Link: https://lore.kernel.org/r/20210628113045.045141693@infradead.org
kernel/jump_label.c