[PATCH v2 0/4] Speculation control improvements

From: David Woodhouse
Date: Wed Feb 14 2018 - 18:29:43 EST


On CPUs which advertise IBRS_ALL, enable it and disable the retpoline
as IBRS_ALL will be faster.

Also use IBRS whenever it's available before calling into firmware at
runtime.

Revert another bikeshedding patch that was broken, and add support for
retpoline builds with clang.

---
v2: Remember to export spectre_v2_enabled

David Woodhouse (4):
x86/speculation: Use IBRS if available before calling into firmware
x86/speculation: Support "Enhanced IBRS" on future CPUs
Revert "x86/retpoline: Simplify vmexit_fill_RSB()"
x86/retpoline: Support retpoline build with Clang

arch/x86/Makefile | 5 +-
arch/x86/entry/entry_32.S | 3 +-
arch/x86/entry/entry_64.S | 3 +-
arch/x86/include/asm/apm.h | 6 ++
arch/x86/include/asm/asm-prototypes.h | 3 -
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/efi.h | 17 ++++-
arch/x86/include/asm/nospec-branch.h | 118 +++++++++++++++++++++++++++++-----
arch/x86/kernel/cpu/bugs.c | 27 +++++++-
arch/x86/kvm/vmx.c | 31 +++++----
arch/x86/lib/Makefile | 1 -
arch/x86/lib/retpoline.S | 56 ----------------
include/linux/compiler-clang.h | 5 ++
include/linux/compiler-gcc.h | 4 ++
include/linux/init.h | 8 +--
15 files changed, 186 insertions(+), 102 deletions(-)

--
2.7.4