[lkml]   [2018]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v5 0/7] Basic Speculation Control feature support
Add the basic CPUID and MSR definitions for AMD and Intel, followed by 
the complete no-brainer: Disable KPTI on Intel CPUs which set the
RDCL_NO bit to say that they don't need it, as well as others which are
known not to speculate such as old Atoms and even older 32-bit chips.

Alan will continue an archæological dig to round up some more entries
for that table.

Also blacklist the early Intel microcodes for Spectre mitigation features,
and add the basic support for indirect_branch_prediction_barrier(). The
latter is needed to protect userspace and complete the retpoline-based
mitigation. Patches on top of it are being bikeshedded as we speak...

v2: Cleanups, add AMD bits for STIBP/SPEC_CTRL.
v3: Add more CPUs to the exemption for KPTI and clean that up.
Add microcode blacklist (RFC).
v4: Roll in 'no speculation' list for CPUs not vulnerable to Spectre.
Cosmetic cleanups in microcode blacklist table.
v5: Update bad KBL microcode revision, blacklist all new features.
Add NSC to no_speculation list.

David Woodhouse (7):
x86/cpufeatures: Add CPUID_7_EDX CPUID leaf
x86/cpufeatures: Add Intel feature bits for Speculation Control
x86/cpufeatures: Add AMD feature bits for Speculation Control
x86/msr: Add definitions for new speculation control MSRs
x86/pti: Do not enable PTI on processors which are not vulnerable to
x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2
x86/speculation: Add basic IBPB (Indirect Branch Prediction Barrier)

arch/x86/include/asm/cpufeature.h | 7 +++-
arch/x86/include/asm/cpufeatures.h | 15 ++++++--
arch/x86/include/asm/disabled-features.h | 3 +-
arch/x86/include/asm/msr-index.h | 12 ++++++
arch/x86/include/asm/nospec-branch.h | 13 +++++++
arch/x86/include/asm/required-features.h | 3 +-
arch/x86/kernel/cpu/bugs.c | 7 ++++
arch/x86/kernel/cpu/common.c | 49 +++++++++++++++++++++---
arch/x86/kernel/cpu/intel.c | 66 ++++++++++++++++++++++++++++++++
arch/x86/kernel/cpu/scattered.c | 2 -
10 files changed, 163 insertions(+), 14 deletions(-)


 \ /
  Last update: 2018-01-25 17:15    [W:0.242 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site