]> git.baikalelectronics.ru Git - kernel.git/commit
jump_label: Explicitly disable jump labels in __init code
authorJosh Poimboeuf <jpoimboe@redhat.com>
Tue, 20 Feb 2018 17:37:51 +0000 (11:37 -0600)
committerIngo Molnar <mingo@kernel.org>
Wed, 21 Feb 2018 15:54:05 +0000 (16:54 +0100)
commit1725ec94e859edc02c5c7ea63c107952b5b3ebe8
treec3ea4269b95e89e4594b2023e7167a2ba8b0fa59
parentbf9b0405e6adef0f0b4a9831166236273c4209d3
jump_label: Explicitly disable jump labels in __init code

After initmem has been freed, any jump labels in __init code are
prevented from being written to by the kernel_text_address() check in
__jump_label_update().  However, this check is quite broad.  If
kernel_text_address() were to return false for any other reason, the
jump label write would fail silently with no warning.

For jump labels in module init code, entry->code is set to zero to
indicate that the entry is disabled.  Do the same thing for core kernel
init code.  This makes the behavior more consistent, and will also make
it more straightforward to detect non-init jump label write failures in
the next patch.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Jason Baron <jbaron@akamai.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/c52825c73f3a174e8398b6898284ec20d4deb126.1519051220.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/jump_label.h
init/main.c
kernel/jump_label.c