x86/Kconfig: introduce option to select retpoline usage

Add a new Kconfig option under the "Speculative hardening" section
that allows selecting whether to enable retpoline. This depends on the
underlying compiler having retpoline support.

Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Roger Pau Monne authored and Andrew Cooper committed 2022-02-21 18:17:56 +00:00
1 parent 9412486707
commit 95d9ab4614
2 files changed
+14 -4

No files matched your search

-4
View File
@@ -36,10 +36,6 @@ config CC_HAS_INDIRECT_THUNK
def_bool $(cc-option,-mindirect-branch-register) || \
$(cc-option,-mretpoline-external-thunk)
config INDIRECT_THUNK
def_bool y
depends on CC_HAS_INDIRECT_THUNK
config HAS_AS_CET_SS
# binutils >= 2.29 or LLVM >= 6
def_bool $(as-instr,wrssq %rax$(comma)0;setssbsy)
+14
View File
@@ -85,6 +85,20 @@ config STATIC_MEMORY
menu "Speculative hardening"
config INDIRECT_THUNK
bool "Speculative Branch Target Injection Protection"
depends on CC_HAS_INDIRECT_THUNK
default y
help
Contemporary processors may use speculative execution as a
performance optimisation, but this can potentially be abused by an
attacker to leak data via speculative sidechannels.
One source of data leakage is via branch target injection.
When enabled, indirect branches are implemented using a new construct
called "retpoline" that prevents speculation.
config SPECULATIVE_HARDEN_ARRAY
bool "Speculative Array Hardening"
default y
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.