| From foo@baz Wed Mar 9 04:10:24 PM CET 2022 |
| From: Zhenzhong Duan <zhenzhong.duan@oracle.com> |
| Date: Fri, 2 Nov 2018 01:45:41 -0700 |
| Subject: x86/retpoline: Remove minimal retpoline support |
| |
| From: Zhenzhong Duan <zhenzhong.duan@oracle.com> |
| |
| commit ef014aae8f1cd2793e4e014bbb102bed53f852b7 upstream. |
| |
| Now that CONFIG_RETPOLINE hard depends on compiler support, there is no |
| reason to keep the minimal retpoline support around which only provided |
| basic protection in the assembly files. |
| |
| Suggested-by: Peter Zijlstra <peterz@infradead.org> |
| Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Cc: David Woodhouse <dwmw@amazon.co.uk> |
| Cc: Borislav Petkov <bp@suse.de> |
| Cc: H. Peter Anvin <hpa@zytor.com> |
| Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
| Cc: <srinivas.eeda@oracle.com> |
| Cc: stable@vger.kernel.org |
| Link: https://lkml.kernel.org/r/f06f0a89-5587-45db-8ed2-0a9d6638d5c0@default |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/include/asm/nospec-branch.h | 2 -- |
| arch/x86/kernel/cpu/bugs.c | 13 ++----------- |
| 2 files changed, 2 insertions(+), 13 deletions(-) |
| |
| --- a/arch/x86/include/asm/nospec-branch.h |
| +++ b/arch/x86/include/asm/nospec-branch.h |
| @@ -223,8 +223,6 @@ |
| /* The Spectre V2 mitigation variants */ |
| enum spectre_v2_mitigation { |
| SPECTRE_V2_NONE, |
| - SPECTRE_V2_RETPOLINE_MINIMAL, |
| - SPECTRE_V2_RETPOLINE_MINIMAL_AMD, |
| SPECTRE_V2_RETPOLINE_GENERIC, |
| SPECTRE_V2_RETPOLINE_AMD, |
| SPECTRE_V2_IBRS_ENHANCED, |
| --- a/arch/x86/kernel/cpu/bugs.c |
| +++ b/arch/x86/kernel/cpu/bugs.c |
| @@ -784,8 +784,6 @@ set_mode: |
| |
| static const char * const spectre_v2_strings[] = { |
| [SPECTRE_V2_NONE] = "Vulnerable", |
| - [SPECTRE_V2_RETPOLINE_MINIMAL] = "Vulnerable: Minimal generic ASM retpoline", |
| - [SPECTRE_V2_RETPOLINE_MINIMAL_AMD] = "Vulnerable: Minimal AMD ASM retpoline", |
| [SPECTRE_V2_RETPOLINE_GENERIC] = "Mitigation: Full generic retpoline", |
| [SPECTRE_V2_RETPOLINE_AMD] = "Mitigation: Full AMD retpoline", |
| [SPECTRE_V2_IBRS_ENHANCED] = "Mitigation: Enhanced IBRS", |
| @@ -810,11 +808,6 @@ static void __init spec_v2_print_cond(co |
| pr_info("%s selected on command line.\n", reason); |
| } |
| |
| -static inline bool retp_compiler(void) |
| -{ |
| - return __is_defined(CONFIG_RETPOLINE); |
| -} |
| - |
| static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void) |
| { |
| enum spectre_v2_mitigation_cmd cmd = SPECTRE_V2_CMD_AUTO; |
| @@ -912,14 +905,12 @@ retpoline_auto: |
| pr_err("Spectre mitigation: LFENCE not serializing, switching to generic retpoline\n"); |
| goto retpoline_generic; |
| } |
| - mode = retp_compiler() ? SPECTRE_V2_RETPOLINE_AMD : |
| - SPECTRE_V2_RETPOLINE_MINIMAL_AMD; |
| + mode = SPECTRE_V2_RETPOLINE_AMD; |
| setup_force_cpu_cap(X86_FEATURE_RETPOLINE_AMD); |
| setup_force_cpu_cap(X86_FEATURE_RETPOLINE); |
| } else { |
| retpoline_generic: |
| - mode = retp_compiler() ? SPECTRE_V2_RETPOLINE_GENERIC : |
| - SPECTRE_V2_RETPOLINE_MINIMAL; |
| + mode = SPECTRE_V2_RETPOLINE_GENERIC; |
| setup_force_cpu_cap(X86_FEATURE_RETPOLINE); |
| } |
| |