]> asedeno.scripts.mit.edu Git - linux.git/commit
jump_label: Disable jump labels in __exit code
authorJosh Poimboeuf <jpoimboe@redhat.com>
Mon, 19 Mar 2018 18:18:57 +0000 (13:18 -0500)
committerIngo Molnar <mingo@kernel.org>
Tue, 20 Mar 2018 07:57:17 +0000 (08:57 +0100)
commit578ae447e7e5d78c90ac40a06406c1741f79ba96
treee91e9feb3f19beba63e715c8f4fc058ecd8b58a0
parent45dbac0e288350f9a4226a5b4b651ed434dd9f85
jump_label: Disable jump labels in __exit code

With the following commit:

  333522447063 ("jump_label: Explicitly disable jump labels in __init code")

... we explicitly disabled jump labels in __init code, so they could be
detected and not warned about in the following commit:

  dc1dd184c2f0 ("jump_label: Warn on failed jump_label patching attempt")

In-kernel __exit code has the same issue.  It's never used, so it's
freed along with the rest of initmem.  But jump label entries in __exit
code aren't explicitly disabled, so we get the following warning when
enabling pr_debug() in __exit code:

  can't patch jump_label at dmi_sysfs_exit+0x0/0x2d
  WARNING: CPU: 0 PID: 22572 at kernel/jump_label.c:376 __jump_label_update+0x9d/0xb0

Fix the warning by disabling all jump labels in initmem (which includes
both __init and __exit code).

Reported-and-tested-by: Li Wang <liwang@redhat.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Jason Baron <jbaron@akamai.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: dc1dd184c2f0 ("jump_label: Warn on failed jump_label patching attempt")
Link: http://lkml.kernel.org/r/7121e6e595374f06616c505b6e690e275c0054d1.1521483452.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/jump_label.h
init/main.c
kernel/jump_label.c