Commit 0911b8c5 authored by Breno Leitao's avatar Breno Leitao Committed by Ingo Molnar

x86/bugs: Rename CONFIG_RETHUNK => CONFIG_MITIGATION_RETHUNK

Step 10/10 of the namespace unification of CPU mitigations related Kconfig options.

[ mingo: Added one more case. ]
Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20231121160740.1249350-11-leitao@debian.org
parent a033eec9
...@@ -2462,7 +2462,7 @@ config FINEIBT ...@@ -2462,7 +2462,7 @@ config FINEIBT
config HAVE_CALL_THUNKS config HAVE_CALL_THUNKS
def_bool y def_bool y
depends on CC_HAS_ENTRY_PADDING && RETHUNK && OBJTOOL depends on CC_HAS_ENTRY_PADDING && MITIGATION_RETHUNK && OBJTOOL
config CALL_THUNKS config CALL_THUNKS
def_bool n def_bool n
...@@ -2505,7 +2505,7 @@ config MITIGATION_RETPOLINE ...@@ -2505,7 +2505,7 @@ config MITIGATION_RETPOLINE
branches. Requires a compiler with -mindirect-branch=thunk-extern branches. Requires a compiler with -mindirect-branch=thunk-extern
support for full protection. The kernel may run slower. support for full protection. The kernel may run slower.
config RETHUNK config MITIGATION_RETHUNK
bool "Enable return-thunks" bool "Enable return-thunks"
depends on MITIGATION_RETPOLINE && CC_HAS_RETURN_THUNK depends on MITIGATION_RETPOLINE && CC_HAS_RETURN_THUNK
select OBJTOOL if HAVE_OBJTOOL select OBJTOOL if HAVE_OBJTOOL
...@@ -2518,7 +2518,7 @@ config RETHUNK ...@@ -2518,7 +2518,7 @@ config RETHUNK
config MITIGATION_UNRET_ENTRY config MITIGATION_UNRET_ENTRY
bool "Enable UNRET on kernel entry" bool "Enable UNRET on kernel entry"
depends on CPU_SUP_AMD && RETHUNK && X86_64 depends on CPU_SUP_AMD && MITIGATION_RETHUNK && X86_64
default y default y
help help
Compile the kernel with support for the retbleed=unret mitigation. Compile the kernel with support for the retbleed=unret mitigation.
...@@ -2572,7 +2572,7 @@ config MITIGATION_IBRS_ENTRY ...@@ -2572,7 +2572,7 @@ config MITIGATION_IBRS_ENTRY
config MITIGATION_SRSO config MITIGATION_SRSO
bool "Mitigate speculative RAS overflow on AMD" bool "Mitigate speculative RAS overflow on AMD"
depends on CPU_SUP_AMD && X86_64 && RETHUNK depends on CPU_SUP_AMD && X86_64 && MITIGATION_RETHUNK
default y default y
help help
Enable the SRSO mitigation needed on AMD Zen1-4 machines. Enable the SRSO mitigation needed on AMD Zen1-4 machines.
......
...@@ -22,7 +22,7 @@ RETPOLINE_VDSO_CFLAGS := -mretpoline ...@@ -22,7 +22,7 @@ RETPOLINE_VDSO_CFLAGS := -mretpoline
endif endif
RETPOLINE_CFLAGS += $(call cc-option,-mindirect-branch-cs-prefix) RETPOLINE_CFLAGS += $(call cc-option,-mindirect-branch-cs-prefix)
ifdef CONFIG_RETHUNK ifdef CONFIG_MITIGATION_RETHUNK
RETHUNK_CFLAGS := -mfunction-return=thunk-extern RETHUNK_CFLAGS := -mfunction-return=thunk-extern
RETPOLINE_CFLAGS += $(RETHUNK_CFLAGS) RETPOLINE_CFLAGS += $(RETHUNK_CFLAGS)
endif endif
......
...@@ -42,7 +42,7 @@ CONFIG_EFI_STUB=y ...@@ -42,7 +42,7 @@ CONFIG_EFI_STUB=y
CONFIG_HZ_1000=y CONFIG_HZ_1000=y
CONFIG_KEXEC=y CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y CONFIG_CRASH_DUMP=y
# CONFIG_RETHUNK is not set # CONFIG_MITIGATION_RETHUNK is not set
CONFIG_HIBERNATION=y CONFIG_HIBERNATION=y
CONFIG_PM_DEBUG=y CONFIG_PM_DEBUG=y
CONFIG_PM_TRACE_RTC=y CONFIG_PM_TRACE_RTC=y
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
(1 << (X86_FEATURE_RETPOLINE_LFENCE & 31))) (1 << (X86_FEATURE_RETPOLINE_LFENCE & 31)))
#endif #endif
#ifdef CONFIG_RETHUNK #ifdef CONFIG_MITIGATION_RETHUNK
# define DISABLE_RETHUNK 0 # define DISABLE_RETHUNK 0
#else #else
# define DISABLE_RETHUNK (1 << (X86_FEATURE_RETHUNK & 31)) # define DISABLE_RETHUNK (1 << (X86_FEATURE_RETHUNK & 31))
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#ifdef __ASSEMBLY__ #ifdef __ASSEMBLY__
#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO) #if defined(CONFIG_MITIGATION_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO)
#define RET jmp __x86_return_thunk #define RET jmp __x86_return_thunk
#else /* CONFIG_MITIGATION_RETPOLINE */ #else /* CONFIG_MITIGATION_RETPOLINE */
#ifdef CONFIG_MITIGATION_SLS #ifdef CONFIG_MITIGATION_SLS
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
#else /* __ASSEMBLY__ */ #else /* __ASSEMBLY__ */
#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO) #if defined(CONFIG_MITIGATION_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO)
#define ASM_RET "jmp __x86_return_thunk\n\t" #define ASM_RET "jmp __x86_return_thunk\n\t"
#else /* CONFIG_MITIGATION_RETPOLINE */ #else /* CONFIG_MITIGATION_RETPOLINE */
#ifdef CONFIG_MITIGATION_SLS #ifdef CONFIG_MITIGATION_SLS
......
...@@ -289,7 +289,7 @@ ...@@ -289,7 +289,7 @@
* where we have a stack but before any RET instruction. * where we have a stack but before any RET instruction.
*/ */
.macro __UNTRAIN_RET ibpb_feature, call_depth_insns .macro __UNTRAIN_RET ibpb_feature, call_depth_insns
#if defined(CONFIG_RETHUNK) || defined(CONFIG_MITIGATION_IBPB_ENTRY) #if defined(CONFIG_MITIGATION_RETHUNK) || defined(CONFIG_MITIGATION_IBPB_ENTRY)
VALIDATE_UNRET_END VALIDATE_UNRET_END
ALTERNATIVE_3 "", \ ALTERNATIVE_3 "", \
CALL_UNTRAIN_RET, X86_FEATURE_UNRET, \ CALL_UNTRAIN_RET, X86_FEATURE_UNRET, \
...@@ -328,7 +328,7 @@ extern retpoline_thunk_t __x86_indirect_thunk_array[]; ...@@ -328,7 +328,7 @@ extern retpoline_thunk_t __x86_indirect_thunk_array[];
extern retpoline_thunk_t __x86_indirect_call_thunk_array[]; extern retpoline_thunk_t __x86_indirect_call_thunk_array[];
extern retpoline_thunk_t __x86_indirect_jump_thunk_array[]; extern retpoline_thunk_t __x86_indirect_jump_thunk_array[];
#ifdef CONFIG_RETHUNK #ifdef CONFIG_MITIGATION_RETHUNK
extern void __x86_return_thunk(void); extern void __x86_return_thunk(void);
#else #else
static inline void __x86_return_thunk(void) {} static inline void __x86_return_thunk(void) {}
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#define ARCH_DEFINE_STATIC_CALL_TRAMP(name, func) \ #define ARCH_DEFINE_STATIC_CALL_TRAMP(name, func) \
__ARCH_DEFINE_STATIC_CALL_TRAMP(name, ".byte 0xe9; .long " #func " - (. + 4)") __ARCH_DEFINE_STATIC_CALL_TRAMP(name, ".byte 0xe9; .long " #func " - (. + 4)")
#ifdef CONFIG_RETHUNK #ifdef CONFIG_MITIGATION_RETHUNK
#define ARCH_DEFINE_STATIC_CALL_NULL_TRAMP(name) \ #define ARCH_DEFINE_STATIC_CALL_NULL_TRAMP(name) \
__ARCH_DEFINE_STATIC_CALL_TRAMP(name, "jmp __x86_return_thunk") __ARCH_DEFINE_STATIC_CALL_TRAMP(name, "jmp __x86_return_thunk")
#else #else
......
...@@ -769,7 +769,7 @@ void __init_or_module noinline apply_retpolines(s32 *start, s32 *end) ...@@ -769,7 +769,7 @@ void __init_or_module noinline apply_retpolines(s32 *start, s32 *end)
} }
} }
#ifdef CONFIG_RETHUNK #ifdef CONFIG_MITIGATION_RETHUNK
/* /*
* Rewrite the compiler generated return thunk tail-calls. * Rewrite the compiler generated return thunk tail-calls.
...@@ -842,7 +842,7 @@ void __init_or_module noinline apply_returns(s32 *start, s32 *end) ...@@ -842,7 +842,7 @@ void __init_or_module noinline apply_returns(s32 *start, s32 *end)
} }
#else #else
void __init_or_module noinline apply_returns(s32 *start, s32 *end) { } void __init_or_module noinline apply_returns(s32 *start, s32 *end) { }
#endif /* CONFIG_RETHUNK */ #endif /* CONFIG_MITIGATION_RETHUNK */
#else /* !CONFIG_MITIGATION_RETPOLINE || !CONFIG_OBJTOOL */ #else /* !CONFIG_MITIGATION_RETPOLINE || !CONFIG_OBJTOOL */
......
...@@ -172,7 +172,7 @@ void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) ...@@ -172,7 +172,7 @@ void arch_static_call_transform(void *site, void *tramp, void *func, bool tail)
} }
EXPORT_SYMBOL_GPL(arch_static_call_transform); EXPORT_SYMBOL_GPL(arch_static_call_transform);
#ifdef CONFIG_RETHUNK #ifdef CONFIG_MITIGATION_RETHUNK
/* /*
* This is called by apply_returns() to fix up static call trampolines, * This is called by apply_returns() to fix up static call trampolines,
* specifically ARCH_DEFINE_STATIC_CALL_NULL_TRAMP which is recorded as * specifically ARCH_DEFINE_STATIC_CALL_NULL_TRAMP which is recorded as
......
...@@ -127,7 +127,7 @@ SYM_CODE_END(__x86_indirect_jump_thunk_array) ...@@ -127,7 +127,7 @@ SYM_CODE_END(__x86_indirect_jump_thunk_array)
#undef GEN #undef GEN
#endif #endif
#ifdef CONFIG_RETHUNK #ifdef CONFIG_MITIGATION_RETHUNK
/* /*
* Be careful here: that label cannot really be removed because in * Be careful here: that label cannot really be removed because in
...@@ -386,4 +386,4 @@ SYM_CODE_START(__x86_return_thunk) ...@@ -386,4 +386,4 @@ SYM_CODE_START(__x86_return_thunk)
SYM_CODE_END(__x86_return_thunk) SYM_CODE_END(__x86_return_thunk)
EXPORT_SYMBOL(__x86_return_thunk) EXPORT_SYMBOL(__x86_return_thunk)
#endif /* CONFIG_RETHUNK */ #endif /* CONFIG_MITIGATION_RETHUNK */
...@@ -263,7 +263,7 @@ objtool-args-$(CONFIG_HAVE_OBJTOOL_NOP_MCOUNT) += --mnop ...@@ -263,7 +263,7 @@ objtool-args-$(CONFIG_HAVE_OBJTOOL_NOP_MCOUNT) += --mnop
endif endif
objtool-args-$(CONFIG_UNWINDER_ORC) += --orc objtool-args-$(CONFIG_UNWINDER_ORC) += --orc
objtool-args-$(CONFIG_MITIGATION_RETPOLINE) += --retpoline objtool-args-$(CONFIG_MITIGATION_RETPOLINE) += --retpoline
objtool-args-$(CONFIG_RETHUNK) += --rethunk objtool-args-$(CONFIG_MITIGATION_RETHUNK) += --rethunk
objtool-args-$(CONFIG_MITIGATION_SLS) += --sls objtool-args-$(CONFIG_MITIGATION_SLS) += --sls
objtool-args-$(CONFIG_STACK_VALIDATION) += --stackval objtool-args-$(CONFIG_STACK_VALIDATION) += --stackval
objtool-args-$(CONFIG_HAVE_STATIC_CALL_INLINE) += --static-call objtool-args-$(CONFIG_HAVE_STATIC_CALL_INLINE) += --static-call
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
(1 << (X86_FEATURE_RETPOLINE_LFENCE & 31))) (1 << (X86_FEATURE_RETPOLINE_LFENCE & 31)))
#endif #endif
#ifdef CONFIG_RETHUNK #ifdef CONFIG_MITIGATION_RETHUNK
# define DISABLE_RETHUNK 0 # define DISABLE_RETHUNK 0
#else #else
# define DISABLE_RETHUNK (1 << (X86_FEATURE_RETHUNK & 31)) # define DISABLE_RETHUNK (1 << (X86_FEATURE_RETHUNK & 31))
......
...@@ -3980,7 +3980,7 @@ static int validate_retpoline(struct objtool_file *file) ...@@ -3980,7 +3980,7 @@ static int validate_retpoline(struct objtool_file *file)
if (insn->type == INSN_RETURN) { if (insn->type == INSN_RETURN) {
if (opts.rethunk) { if (opts.rethunk) {
WARN_INSN(insn, "'naked' return found in RETHUNK build"); WARN_INSN(insn, "'naked' return found in MITIGATION_RETHUNK build");
} else } else
continue; continue;
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment