linux-stable/tools/objtool/include/objtool
Peter Zijlstra 2d4d8761e3 objtool/x86: Fix SRSO mess
commit 4ae68b26c3 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: fb3bd914b3 ("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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-08-23 17:32:39 +02:00
..
arch.h objtool/x86: Fix SRSO mess 2023-08-23 17:32:39 +02:00
builtin.h objtool: Make struct check_options static 2023-02-01 09:15:23 -08:00
cfi.h objtool: Fix ORC 'signal' propagation 2023-02-23 09:21:50 +01:00
check.h x86,objtool: Separate unret validation from unwind hints 2023-03-23 23:18:58 +01:00
elf.h objtool/x86: Fix SRSO mess 2023-08-23 17:32:39 +02:00
endianness.h objtool: Use target file endianness instead of a compiled constant 2022-11-18 19:00:15 +11:00
objtool.h objtool: Remove instruction::list 2023-02-23 09:21:44 +01:00
special.h objtool: Optimize layout of struct special_alt 2023-02-01 09:15:24 -08:00
warn.h objtool: Add WARN_INSN() 2023-04-14 16:08:28 +02:00