Messages in this thread Patch in this message | | | From | David Woodhouse <> | Subject | [PATCH v4 12/13] x86/retpoline: Add boot time option to disable retpoline | Date | Fri, 5 Jan 2018 02:01:08 +0000 |
| |
From: Andi Kleen <ak@linux.intel.com>
Add a noretpoline option boot to disable retpoline and patch out the extra sequences. It cannot patch out the jumps to the thunk functions generated by the compiler, but they turn into a single indirect branch now.
Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> --- Documentation/admin-guide/kernel-parameters.txt | 3 +++ arch/x86/kernel/cpu/intel.c | 10 ++++++++++ 2 files changed, 13 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index af7104a..c48db34 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -2623,6 +2623,9 @@ nohugeiomap [KNL,x86] Disable kernel huge I/O mappings. + noretpoline [X86] Disable the retpoline kernel indirect branch speculation + workarounds. System may allow data leaks with this option. + nosmt [KNL,S390] Disable symmetric multithreading (SMT). Equivalent to smt=1. diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c index b1af220..4ab46f5 100644 --- a/arch/x86/kernel/cpu/intel.c +++ b/arch/x86/kernel/cpu/intel.c @@ -31,6 +31,16 @@ #include <asm/apic.h> #endif +#ifdef RETPOLINE +static int __init noretpoline_setup(char *__unused) +{ + pr_info("Retpoline runtime disabled\n"); + setup_force_cpu_cap(X86_BUG_NO_RETPOLINE); + return 1; +} +__setup("noretpoline", noretpoline_setup); +#endif + /* * Just in case our CPU detection goes bad, or you have a weird system, * allow a way to override the automatic disabling of MPX. -- 2.7.4
| |