Commit 5fa31af3 authored by Breno Leitao's avatar Breno Leitao Committed by Ingo Molnar

x86/bugs: Rename CONFIG_CALL_DEPTH_TRACKING => CONFIG_MITIGATION_CALL_DEPTH_TRACKING

Step 3/10 of the namespace unification of CPU mitigations related Kconfig options.
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-4-leitao@debian.org
parent e0b8fcfa
...@@ -2523,7 +2523,7 @@ config CPU_UNRET_ENTRY ...@@ -2523,7 +2523,7 @@ config CPU_UNRET_ENTRY
help help
Compile the kernel with support for the retbleed=unret mitigation. Compile the kernel with support for the retbleed=unret mitigation.
config CALL_DEPTH_TRACKING config MITIGATION_CALL_DEPTH_TRACKING
bool "Mitigate RSB underflow with call depth tracking" bool "Mitigate RSB underflow with call depth tracking"
depends on CPU_SUP_INTEL && HAVE_CALL_THUNKS depends on CPU_SUP_INTEL && HAVE_CALL_THUNKS
select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE
...@@ -2543,7 +2543,7 @@ config CALL_DEPTH_TRACKING ...@@ -2543,7 +2543,7 @@ config CALL_DEPTH_TRACKING
config CALL_THUNKS_DEBUG config CALL_THUNKS_DEBUG
bool "Enable call thunks and call depth tracking debugging" bool "Enable call thunks and call depth tracking debugging"
depends on CALL_DEPTH_TRACKING depends on MITIGATION_CALL_DEPTH_TRACKING
select FUNCTION_ALIGNMENT_32B select FUNCTION_ALIGNMENT_32B
default n default n
help help
......
...@@ -17,7 +17,7 @@ struct pcpu_hot { ...@@ -17,7 +17,7 @@ struct pcpu_hot {
struct task_struct *current_task; struct task_struct *current_task;
int preempt_count; int preempt_count;
int cpu_number; int cpu_number;
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
u64 call_depth; u64 call_depth;
#endif #endif
unsigned long top_of_stack; unsigned long top_of_stack;
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
# define DISABLE_UNRET (1 << (X86_FEATURE_UNRET & 31)) # define DISABLE_UNRET (1 << (X86_FEATURE_UNRET & 31))
#endif #endif
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
# define DISABLE_CALL_DEPTH_TRACKING 0 # define DISABLE_CALL_DEPTH_TRACKING 0
#else #else
# define DISABLE_CALL_DEPTH_TRACKING (1 << (X86_FEATURE_CALL_DEPTH & 31)) # define DISABLE_CALL_DEPTH_TRACKING (1 << (X86_FEATURE_CALL_DEPTH & 31))
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
# define CALL_THUNKS_DEBUG_INC_CTXSW # define CALL_THUNKS_DEBUG_INC_CTXSW
#endif #endif
#if defined(CONFIG_CALL_DEPTH_TRACKING) && !defined(COMPILE_OFFSETS) #if defined(CONFIG_MITIGATION_CALL_DEPTH_TRACKING) && !defined(COMPILE_OFFSETS)
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
...@@ -309,7 +309,7 @@ ...@@ -309,7 +309,7 @@
.macro CALL_DEPTH_ACCOUNT .macro CALL_DEPTH_ACCOUNT
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
ALTERNATIVE "", \ ALTERNATIVE "", \
__stringify(ASM_INCREMENT_CALL_DEPTH), X86_FEATURE_CALL_DEPTH __stringify(ASM_INCREMENT_CALL_DEPTH), X86_FEATURE_CALL_DEPTH
#endif #endif
...@@ -357,7 +357,7 @@ extern void entry_ibpb(void); ...@@ -357,7 +357,7 @@ extern void entry_ibpb(void);
extern void (*x86_return_thunk)(void); extern void (*x86_return_thunk)(void);
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
extern void call_depth_return_thunk(void); extern void call_depth_return_thunk(void);
#define CALL_DEPTH_ACCOUNT \ #define CALL_DEPTH_ACCOUNT \
...@@ -371,12 +371,12 @@ DECLARE_PER_CPU(u64, __x86_ret_count); ...@@ -371,12 +371,12 @@ DECLARE_PER_CPU(u64, __x86_ret_count);
DECLARE_PER_CPU(u64, __x86_stuffs_count); DECLARE_PER_CPU(u64, __x86_stuffs_count);
DECLARE_PER_CPU(u64, __x86_ctxsw_count); DECLARE_PER_CPU(u64, __x86_ctxsw_count);
#endif #endif
#else /* !CONFIG_CALL_DEPTH_TRACKING */ #else /* !CONFIG_MITIGATION_CALL_DEPTH_TRACKING */
static inline void call_depth_return_thunk(void) {} static inline void call_depth_return_thunk(void) {}
#define CALL_DEPTH_ACCOUNT "" #define CALL_DEPTH_ACCOUNT ""
#endif /* CONFIG_CALL_DEPTH_TRACKING */ #endif /* CONFIG_MITIGATION_CALL_DEPTH_TRACKING */
#ifdef CONFIG_RETPOLINE #ifdef CONFIG_RETPOLINE
......
...@@ -109,7 +109,7 @@ static void __used common(void) ...@@ -109,7 +109,7 @@ static void __used common(void)
OFFSET(TSS_sp2, tss_struct, x86_tss.sp2); OFFSET(TSS_sp2, tss_struct, x86_tss.sp2);
OFFSET(X86_top_of_stack, pcpu_hot, top_of_stack); OFFSET(X86_top_of_stack, pcpu_hot, top_of_stack);
OFFSET(X86_current_task, pcpu_hot, current_task); OFFSET(X86_current_task, pcpu_hot, current_task);
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
OFFSET(X86_call_depth, pcpu_hot, call_depth); OFFSET(X86_call_depth, pcpu_hot, call_depth);
#endif #endif
#if IS_ENABLED(CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64) #if IS_ENABLED(CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64)
......
...@@ -1003,15 +1003,15 @@ static void __init retbleed_select_mitigation(void) ...@@ -1003,15 +1003,15 @@ static void __init retbleed_select_mitigation(void)
break; break;
case RETBLEED_CMD_STUFF: case RETBLEED_CMD_STUFF:
if (IS_ENABLED(CONFIG_CALL_DEPTH_TRACKING) && if (IS_ENABLED(CONFIG_MITIGATION_CALL_DEPTH_TRACKING) &&
spectre_v2_enabled == SPECTRE_V2_RETPOLINE) { spectre_v2_enabled == SPECTRE_V2_RETPOLINE) {
retbleed_mitigation = RETBLEED_MITIGATION_STUFF; retbleed_mitigation = RETBLEED_MITIGATION_STUFF;
} else { } else {
if (IS_ENABLED(CONFIG_CALL_DEPTH_TRACKING)) if (IS_ENABLED(CONFIG_MITIGATION_CALL_DEPTH_TRACKING))
pr_err("WARNING: retbleed=stuff depends on spectre_v2=retpoline\n"); pr_err("WARNING: retbleed=stuff depends on spectre_v2=retpoline\n");
else else
pr_err("WARNING: kernel not compiled with CALL_DEPTH_TRACKING.\n"); pr_err("WARNING: kernel not compiled with MITIGATION_CALL_DEPTH_TRACKING.\n");
goto do_cmd_auto; goto do_cmd_auto;
} }
......
...@@ -71,7 +71,7 @@ SYM_CODE_END(__x86_indirect_thunk_array) ...@@ -71,7 +71,7 @@ SYM_CODE_END(__x86_indirect_thunk_array)
#include <asm/GEN-for-each-reg.h> #include <asm/GEN-for-each-reg.h>
#undef GEN #undef GEN
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
.macro CALL_THUNK reg .macro CALL_THUNK reg
.align RETPOLINE_THUNK_SIZE .align RETPOLINE_THUNK_SIZE
...@@ -327,7 +327,7 @@ __EXPORT_THUNK(entry_untrain_ret) ...@@ -327,7 +327,7 @@ __EXPORT_THUNK(entry_untrain_ret)
#endif /* CONFIG_CPU_UNRET_ENTRY || CONFIG_CPU_SRSO */ #endif /* CONFIG_CPU_UNRET_ENTRY || CONFIG_CPU_SRSO */
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
.align 64 .align 64
SYM_FUNC_START(call_depth_return_thunk) SYM_FUNC_START(call_depth_return_thunk)
...@@ -359,7 +359,7 @@ SYM_FUNC_START(call_depth_return_thunk) ...@@ -359,7 +359,7 @@ SYM_FUNC_START(call_depth_return_thunk)
int3 int3
SYM_FUNC_END(call_depth_return_thunk) SYM_FUNC_END(call_depth_return_thunk)
#endif /* CONFIG_CALL_DEPTH_TRACKING */ #endif /* CONFIG_MITIGATION_CALL_DEPTH_TRACKING */
/* /*
* This function name is magical and is used by -mfunction-return=thunk-extern * This function name is magical and is used by -mfunction-return=thunk-extern
......
...@@ -254,7 +254,7 @@ objtool := $(objtree)/tools/objtool/objtool ...@@ -254,7 +254,7 @@ objtool := $(objtree)/tools/objtool/objtool
objtool-args-$(CONFIG_HAVE_JUMP_LABEL_HACK) += --hacks=jump_label objtool-args-$(CONFIG_HAVE_JUMP_LABEL_HACK) += --hacks=jump_label
objtool-args-$(CONFIG_HAVE_NOINSTR_HACK) += --hacks=noinstr objtool-args-$(CONFIG_HAVE_NOINSTR_HACK) += --hacks=noinstr
objtool-args-$(CONFIG_CALL_DEPTH_TRACKING) += --hacks=skylake objtool-args-$(CONFIG_MITIGATION_CALL_DEPTH_TRACKING) += --hacks=skylake
objtool-args-$(CONFIG_X86_KERNEL_IBT) += --ibt objtool-args-$(CONFIG_X86_KERNEL_IBT) += --ibt
objtool-args-$(CONFIG_FINEIBT) += --cfi objtool-args-$(CONFIG_FINEIBT) += --cfi
objtool-args-$(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL) += --mcount objtool-args-$(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL) += --mcount
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
# define DISABLE_UNRET (1 << (X86_FEATURE_UNRET & 31)) # define DISABLE_UNRET (1 << (X86_FEATURE_UNRET & 31))
#endif #endif
#ifdef CONFIG_CALL_DEPTH_TRACKING #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
# define DISABLE_CALL_DEPTH_TRACKING 0 # define DISABLE_CALL_DEPTH_TRACKING 0
#else #else
# define DISABLE_CALL_DEPTH_TRACKING (1 << (X86_FEATURE_CALL_DEPTH & 31)) # define DISABLE_CALL_DEPTH_TRACKING (1 << (X86_FEATURE_CALL_DEPTH & 31))
......
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