mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
A Clang-built kernel is showing the following warning:
arch/x86/kernel/platform-quirks.o: warning: objtool: x86_early_init_platform_quirks()+0x84: unreachable instruction
That corresponds to this code:
7e: 0f 85 00 00 00 00 jne 84 <x86_early_init_platform_quirks+0x84>
80: R_X86_64_PC32 __x86_indirect_thunk_r11-0x4
84: c3 retq
This is a conditional retpoline sibling call, which is now possible
thanks to retpolines. Objtool hasn't seen that before. It's
incorrectly interpreting the conditional jump as an unconditional
dynamic jump.
Reported-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/30d4c758b267ef487fb97e6ecb2f148ad007b554.1563413318.git.jpoimboe@redhat.com
|
||
|---|---|---|
| .. | ||
| arch/x86 | ||
| Documentation | ||
| .gitignore | ||
| arch.h | ||
| Build | ||
| builtin-check.c | ||
| builtin-orc.c | ||
| builtin.h | ||
| cfi.h | ||
| check.c | ||
| check.h | ||
| elf.c | ||
| elf.h | ||
| Makefile | ||
| objtool.c | ||
| orc_dump.c | ||
| orc_gen.c | ||
| orc.h | ||
| special.c | ||
| special.h | ||
| sync-check.sh | ||
| warn.h | ||