android_kernel_xiaomi_sm8450/tools/objtool
Peter Zijlstra c6aecc29d2 objtool/x86: Fix SRSO mess
commit 4ae68b26c3ab5a82aa271e6e9fc9b1a06e1d6b40 upstream.

Objtool --rethunk does two things:

 - it collects all (tail) call's of __x86_return_thunk and places them
   into .return_sites. These are typically compiler generated, but
   RET also emits this same.

 - it fudges the validation of the __x86_return_thunk symbol; because
   this symbol is inside another instruction, it can't actually find
   the instruction pointed to by the symbol offset and gets upset.

Because these two things pertained to the same symbol, there was no
pressing need to separate these two separate things.

However, alas, along comes SRSO and more crazy things to deal with
appeared.

The SRSO patch itself added the following symbol names to identify as
rethunk:

  'srso_untrain_ret', 'srso_safe_ret' and '__ret'

Where '__ret' is the old retbleed return thunk, 'srso_safe_ret' is a
new similarly embedded return thunk, and 'srso_untrain_ret' is
completely unrelated to anything the above does (and was only included
because of that INT3 vs UD2 issue fixed previous).

Clear things up by adding a second category for the embedded instruction
thing.

Fixes: fb3bd914b3ec ("x86/srso: Add a Speculative RAS Overflow mitigation")
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20230814121148.704502245@infradead.org
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-08-30 16:23:09 +02:00
..
arch/x86 objtool/x86: Fix SRSO mess 2023-08-30 16:23:09 +02:00
Documentation objtool: Support stack layout changes in alternatives 2022-07-25 11:26:06 +02:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
arch.h objtool/x86: Fix SRSO mess 2023-08-30 16:23:09 +02:00
Build objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
builtin-check.c x86/retbleed: Add fine grained Kconfig knobs 2022-07-25 11:26:50 +02:00
builtin-orc.c objtool: Refactor ORC section generation 2022-07-25 11:26:05 +02:00
builtin.h x86/retbleed: Add fine grained Kconfig knobs 2022-07-25 11:26:50 +02:00
cfi.h objtool: Introduce CFI hash 2022-07-25 11:26:22 +02:00
check.c objtool/x86: Fix SRSO mess 2023-08-30 16:23:09 +02:00
check.h objtool: Re-add UNWIND_HINT_{SAVE_RESTORE} 2022-07-25 11:26:47 +02:00
elf.c objtool: Preserve special st_shndx indexes in elf_update_symbol 2022-10-26 13:25:18 +02:00
elf.h objtool/x86: Fix SRSO mess 2023-08-30 16:23:09 +02:00
Makefile objtool: Refactor ORC section generation 2022-07-25 11:26:05 +02:00
objtool.c x86,objtool: Create .return_sites 2022-07-25 11:26:36 +02:00
objtool.h x86,objtool: Create .return_sites 2022-07-25 11:26:36 +02:00
orc_dump.c objtool: Make unwind hint definitions available to other architectures 2020-09-10 10:43:13 -05:00
orc_gen.c objtool: Introduce CFI hash 2022-07-25 11:26:22 +02:00
special.c objtool,x86: Replace alternatives with .retpoline_sites 2022-07-25 11:26:23 +02:00
special.h objtool: Refactor jump table code to support other architectures 2020-09-10 10:43:13 -05:00
sync-check.sh x86/insn: Add a __ignore_sync_check__ marker 2022-07-25 11:26:11 +02:00
warn.h objtool: Rename find_containing_func() 2020-03-25 18:28:29 +01:00
weak.c objtool: Refactor ORC section generation 2022-07-25 11:26:05 +02:00