Re: [STABLE 4.9.y PATCH 0/9] Backport of KVM Speculation Control support

From: Woodhouse, David
Date: Tue Feb 06 2018 - 16:17:53 EST




On Tue, 2018-02-06 at 19:01 +0100, Paolo Bonzini wrote:
> On 06/02/2018 18:29, David Woodhouse wrote:
> > I've put together a linux-4.9.y branch atÂ
> > http://git.infradead.org/retpoline-stable.git/shortlog/refs/heads/linux-4.9.y
>
> > Most of it is fairly straightforward, apart from the IBPB on contextÂ
> > switch for which Tim has already posted a candidate. I wanted some more
> > review on my backports of the KVM bits though, including some extra
> > historical patches I pulled in.
>
> Looks good! Thanks for the work,
>
> Paolo

Thanks. In that case, Greg, the full set is lined up in
http://git.infradead.org/retpoline-stable.git/shortlog/refs/heads/linux-4.9.y
or git://git.infradead.org/retpoline-stable linux-4.9.y

This matches what Linus just pulled in from tip/x86-pti-for-linus,
except that it's missing the IBPB on context switch (qv).

----------------------------------------------------------------
Andi Kleen (1):
ÂÂÂÂÂÂmodule/retpoline: Warn about missing retpoline in module

Andy Lutomirski (3):
ÂÂÂÂÂÂx86/entry/64: Remove the SYSCALL64 fast path
ÂÂÂÂÂÂx86/entry/64: Push extra regs right away
ÂÂÂÂÂÂx86/asm: Move 'status' from thread_struct to thread_info

Arnd Bergmann (1):
ÂÂÂÂÂÂx86/pti: Mark constant arrays as __initconst

Ashok Raj (1):
ÂÂÂÂÂÂKVM/x86: Add IBPB support

Borislav Petkov (4):
ÂÂÂÂÂÂx86/alternative: Print unadorned pointers
ÂÂÂÂÂÂx86/nospec: Fix header guards names
ÂÂÂÂÂÂx86/bugs: Drop one "mitigation" from dmesg
ÂÂÂÂÂÂx86/retpoline: Simplify vmexit_fill_RSB()

Colin Ian King (1):
ÂÂÂÂÂÂx86/spectre: Fix spelling mistake: "vunerable"-> "vulnerable"

Dan Williams (12):
ÂÂÂÂÂÂarray_index_nospec: Sanitize speculative array de-references
ÂÂÂÂÂÂx86: Implement array_index_mask_nospec
ÂÂÂÂÂÂx86: Introduce barrier_nospec
ÂÂÂÂÂÂx86: Introduce __uaccess_begin_nospec() and uaccess_try_nospec
ÂÂÂÂÂÂx86/usercopy: Replace open coded stac/clac with __uaccess_{begin, end}
ÂÂÂÂÂÂx86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec
ÂÂÂÂÂÂx86/get_user: Use pointer masking to limit speculation
ÂÂÂÂÂÂx86/syscall: Sanitize syscall table de-references under speculation
ÂÂÂÂÂÂvfs, fdtable: Prevent bounds-check bypass via speculative execution
ÂÂÂÂÂÂnl80211: Sanitize array index in parse_txq_params
ÂÂÂÂÂÂx86/spectre: Report get_user mitigation for spectre_v1
ÂÂÂÂÂÂx86/kvm: Update spectre-v1 mitigation

Darren Kenny (1):
ÂÂÂÂÂÂx86/speculation: Fix typo IBRS_ATT, which should be IBRS_ALL

David Hildenbrand (1):
ÂÂÂÂÂÂKVM: nVMX: vmx_complete_nested_posted_interrupt() can't fail

David Matlack (1):
ÂÂÂÂÂÂKVM: nVMX: mark vmcs12 pages dirty on L2 exit

David Woodhouse (10):
ÂÂÂÂÂÂ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 CPUs which are not vulnerable to Meltdown
ÂÂÂÂÂÂx86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes
ÂÂÂÂÂÂx86/speculation: Add basic IBPB (Indirect Branch Prediction Barrier) support
ÂÂÂÂÂÂx86/cpufeatures: Clean up Spectre v2 related CPUID flags
ÂÂÂÂÂÂx86/cpuid: Fix up "virtual" IBRS/IBPB/STIBP feature bits on Intel
ÂÂÂÂÂÂx86/retpoline: Avoid retpolines for built-in __init functions

Dou Liyang (1):
ÂÂÂÂÂÂx86/spectre: Check CONFIG_RETPOLINE in command line parser

Jim Mattson (1):
ÂÂÂÂÂÂKVM: nVMX: Eliminate vmcs02 pool

Josh Poimboeuf (1):
ÂÂÂÂÂÂx86/paravirt: Remove 'noreplace-paravirt' cmdline option

KarimAllah Ahmed (4):
ÂÂÂÂÂÂx86/spectre: Simplify spectre_v2 command line parsing
ÂÂÂÂÂÂKVM/VMX: Emulate MSR_IA32_ARCH_CAPABILITIES
ÂÂÂÂÂÂKVM/VMX: Allow direct access to MSR_IA32_SPEC_CTRL
ÂÂÂÂÂÂKVM/SVM: Allow direct access to MSR_IA32_SPEC_CTRL

Mark Rutland (1):
ÂÂÂÂÂÂDocumentation: Document array_index_nospec

Paolo Bonzini (2):
ÂÂÂÂÂÂKVM: VMX: introduce alloc_loaded_vmcs
ÂÂÂÂÂÂKVM: VMX: make MSR bitmaps per-VCPU

Peter Zijlstra (2):
ÂÂÂÂÂÂKVM: x86: Make indirect calls in emulator speculation safe
ÂÂÂÂÂÂKVM: VMX: Make indirect call speculation safe

Thomas Gleixner (1):
ÂÂÂÂÂÂx86/cpu/bugs: Make retpoline module warning conditional

Waiman Long (1):
ÂÂÂÂÂÂx86/retpoline: Remove the esp/rsp thunk

ÂDocumentation/kernel-parameters.txtÂÂÂÂÂÂ|ÂÂÂ2 -
ÂDocumentation/speculation.txtÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ90 +++++++++++++
Âarch/x86/entry/common.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ9 +-
Âarch/x86/entry/entry_32.SÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ3 +-
Âarch/x86/entry/entry_64.SÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ| 134 ++----------------
Âarch/x86/entry/syscall_64.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ7 +-
Âarch/x86/include/asm/asm-prototypes.hÂÂÂÂ|ÂÂÂ4 +-
Âarch/x86/include/asm/barrier.hÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ28 ++++
Âarch/x86/include/asm/cpufeature.hÂÂÂÂÂÂÂÂ|ÂÂÂ7 +-
Âarch/x86/include/asm/cpufeatures.hÂÂÂÂÂÂÂ|ÂÂ22 ++-
Âarch/x86/include/asm/disabled-features.h |ÂÂÂ3 +-
Âarch/x86/include/asm/intel-family.hÂÂÂÂÂÂ|ÂÂÂ7 +-
Âarch/x86/include/asm/msr-index.hÂÂÂÂÂÂÂÂÂ|ÂÂ12 ++
Âarch/x86/include/asm/msr.hÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ3 +-
Âarch/x86/include/asm/nospec-branch.hÂÂÂÂÂ|ÂÂ91 ++++---------
Âarch/x86/include/asm/processor.hÂÂÂÂÂÂÂÂÂ|ÂÂÂ2 -
Âarch/x86/include/asm/required-features.h |ÂÂÂ3 +-
Âarch/x86/include/asm/syscall.hÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ6 +-
Âarch/x86/include/asm/thread_info.hÂÂÂÂÂÂÂ|ÂÂÂ3 +-
Âarch/x86/include/asm/uaccess.hÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ15 ++-
Âarch/x86/include/asm/uaccess_32.hÂÂÂÂÂÂÂÂ|ÂÂ12 +-
Âarch/x86/include/asm/uaccess_64.hÂÂÂÂÂÂÂÂ|ÂÂ12 +-
Âarch/x86/kernel/alternative.cÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ28 +---
Âarch/x86/kernel/cpu/bugs.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ| 128 +++++++++++++-----
Âarch/x86/kernel/cpu/common.cÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ70 +++++++++-
Âarch/x86/kernel/cpu/intel.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ66 +++++++++
Âarch/x86/kernel/cpu/scattered.cÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ2 -
Âarch/x86/kernel/process_64.cÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ4 +-
Âarch/x86/kernel/ptrace.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ2 +-
Âarch/x86/kernel/signal.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ2 +-
Âarch/x86/kvm/cpuid.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ21 ++-
Âarch/x86/kvm/cpuid.hÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ31 +++++
Âarch/x86/kvm/emulate.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ10 +-
Âarch/x86/kvm/svm.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ| 116 ++++++++++++++++
Âarch/x86/kvm/vmx.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ| 754 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------
Âarch/x86/kvm/x86.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ1 +
Âarch/x86/lib/MakefileÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ1 +
Âarch/x86/lib/getuser.SÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ10 ++
Âarch/x86/lib/retpoline.SÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ57 +++++++-
Âarch/x86/lib/usercopy_32.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ8 +-
Âinclude/linux/fdtable.hÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ5 +-
Âinclude/linux/init.hÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ9 +-
Âinclude/linux/module.hÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ9 ++
Âinclude/linux/nospec.hÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ72 ++++++++++
Âkernel/module.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ11 ++
Ânet/wireless/nl80211.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ9 +-
Âscripts/mod/modpost.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ9 ++
Â47 files changed, 1230 insertions(+), 680 deletions(-)
Âcreate mode 100644 Documentation/speculation.txt
Âcreate mode 100644 include/linux/nospec.h

Attachment: smime.p7s
Description: S/MIME cryptographic signature