I'm announcing the release of the 3.16.68 kernel.
All users of the 3.16 kernel series should upgrade.
The updated 3.16.y git tree can be found at: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-3.16.y and can be browsed at the normal kernel.org git web browser: https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git
The diff from 3.16.67 is attached to this message.
Ben.
------------
Documentation/ABI/testing/sysfs-devices-system-cpu | 2 + Documentation/hw-vuln/mds.rst | 305 ++++++++++ Documentation/kernel-parameters.txt | 106 +++- Documentation/spec_ctrl.rst | 9 + Documentation/static-keys.txt | 99 ++-- Documentation/x86/mds.rst | 225 ++++++++ Makefile | 3 +- arch/arm/include/asm/jump_label.h | 30 +- arch/arm/kernel/jump_label.c | 2 +- arch/arm64/include/asm/jump_label.h | 24 +- arch/arm64/kernel/jump_label.c | 2 +- arch/mips/include/asm/jump_label.h | 32 +- arch/mips/kernel/jump_label.c | 44 +- arch/powerpc/include/asm/jump_label.h | 19 +- arch/powerpc/kernel/jump_label.c | 2 +- arch/s390/include/asm/jump_label.h | 29 +- arch/s390/kernel/jump_label.c | 65 ++- arch/sparc/include/asm/jump_label.h | 38 +- arch/sparc/kernel/jump_label.c | 2 +- arch/x86/Kconfig | 8 +- arch/x86/boot/cpuflags.h | 2 +- arch/x86/boot/mkcpustr.c | 2 +- arch/x86/crypto/crc32-pclmul_glue.c | 2 +- arch/x86/crypto/crc32c-intel_glue.c | 2 +- arch/x86/crypto/crct10dif-pclmul_glue.c | 2 +- arch/x86/ia32/ia32entry.S | 2 + arch/x86/include/asm/alternative.h | 6 - arch/x86/include/asm/apic.h | 1 - arch/x86/include/asm/arch_hweight.h | 2 + arch/x86/include/asm/atomic.h | 1 - arch/x86/include/asm/atomic64_32.h | 1 - arch/x86/include/asm/barrier.h | 1 + arch/x86/include/asm/cmpxchg.h | 1 + arch/x86/include/asm/cpufeature.h | 278 +-------- arch/x86/include/asm/cpufeatures.h | 278 +++++++++ arch/x86/include/asm/intel-family.h | 30 +- arch/x86/include/asm/irqflags.h | 5 + arch/x86/include/asm/jump_label.h | 85 ++- arch/x86/include/asm/mwait.h | 7 + arch/x86/include/asm/nospec-branch.h | 83 ++- arch/x86/include/asm/processor.h | 10 +- arch/x86/include/asm/smap.h | 2 +- arch/x86/include/asm/smp.h | 1 - arch/x86/include/asm/spec-ctrl.h | 20 +- arch/x86/include/asm/switch_to.h | 3 - arch/x86/include/asm/thread_info.h | 28 +- arch/x86/include/asm/tlbflush.h | 7 + arch/x86/include/asm/uaccess_64.h | 2 +- arch/x86/include/uapi/asm/msr-index.h | 20 +- arch/x86/kernel/cpu/Makefile | 2 +- arch/x86/kernel/cpu/bugs.c | 629 ++++++++++++++++++--- arch/x86/kernel/cpu/centaur.c | 2 +- arch/x86/kernel/cpu/common.c | 133 +++-- arch/x86/kernel/cpu/cyrix.c | 1 + arch/x86/kernel/cpu/intel.c | 2 +- arch/x86/kernel/cpu/intel_cacheinfo.c | 2 +- arch/x86/kernel/cpu/match.c | 2 +- arch/x86/kernel/cpu/mkcapflags.sh | 51 +- arch/x86/kernel/cpu/mtrr/main.c | 2 +- arch/x86/kernel/cpu/proc.c | 8 + arch/x86/kernel/cpu/transmeta.c | 2 +- arch/x86/kernel/e820.c | 1 + arch/x86/kernel/entry_32.S | 4 +- arch/x86/kernel/entry_64.S | 7 +- arch/x86/kernel/head_32.S | 2 +- arch/x86/kernel/hpet.c | 1 + arch/x86/kernel/jump_label.c | 2 +- arch/x86/kernel/msr.c | 2 +- arch/x86/kernel/nmi.c | 4 + arch/x86/kernel/process.c | 101 +++- arch/x86/kernel/process.h | 39 ++ arch/x86/kernel/process_32.c | 9 +- arch/x86/kernel/process_64.c | 9 +- arch/x86/kernel/traps.c | 9 + arch/x86/kernel/verify_cpu.S | 2 +- arch/x86/kvm/cpuid.c | 5 +- arch/x86/lib/clear_page_64.S | 2 +- arch/x86/lib/copy_page_64.S | 2 +- arch/x86/lib/copy_user_64.S | 2 +- arch/x86/lib/memcpy_64.S | 2 +- arch/x86/lib/memmove_64.S | 2 +- arch/x86/lib/memset_64.S | 2 +- arch/x86/lib/retpoline.S | 2 +- arch/x86/mm/kaiser.c | 4 +- arch/x86/mm/setup_nx.c | 1 + arch/x86/mm/tlb.c | 102 +++- arch/x86/oprofile/op_model_amd.c | 1 - arch/x86/um/asm/barrier.h | 2 +- arch/x86/vdso/vdso32-setup.c | 1 - arch/x86/vdso/vma.c | 1 + drivers/base/cpu.c | 8 + include/linux/cpu.h | 19 + include/linux/jump_label.h | 301 +++++++--- include/linux/module.h | 5 + include/linux/ptrace.h | 21 +- include/linux/sched.h | 9 + include/linux/sched/smt.h | 20 + include/uapi/linux/prctl.h | 1 + kernel/cpu.c | 23 +- kernel/jump_label.c | 159 ++++-- kernel/module.c | 12 +- kernel/ptrace.c | 10 + kernel/sched/core.c | 19 + kernel/sched/sched.h | 1 + lib/atomic64_test.c | 4 + 105 files changed, 2872 insertions(+), 829 deletions(-)
Andi Kleen (4): x86/headers: Don't include asm/processor.h in asm/atomic.h x86/speculation/mds: Add basic bug infrastructure for MDS x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests x86/cpu/bugs: Use __initconst for 'const' init data
Andy Lutomirski (2): x86/asm: Error out if asm/jump_label.h is included inappropriately x86/asm: Add asm macros for static keys/jump labels
Anton Blanchard (2): jump_label: Allow asm/jump_label.h to be included in assembly jump_label: Allow jump labels to be used in assembly
Ben Hutchings (4): sched: Add sched_smt_active() x86/speculation/l1tf: Document l1tf in sysfs x86/bugs: Change L1TF mitigation string to match upstream Linux 3.16.68
Boris Ostrovsky (1): x86/speculation/mds: Fix comment
Borislav Petkov (2): x86/cpufeature: Add bug flags to /proc/cpuinfo x86/cpufeature: Carve out X86_FEATURE_*
Dominik Brodowski (1): x86/speculation: Simplify the CPU bug detection logic
Eduardo Habkost (1): kvm: x86: Report STIBP on GET_SUPPORTED_CPUID
Heiko Carstens (2): s390/jump label: add sanity checks s390/jump label: use different nop instruction
Ingo Molnar (1): jump_label: Fix small typos in the documentation
Jason Baron (1): jump label, locking/static_keys: Update docs
Jiang Biao (1): x86/speculation: Remove SPECTRE_V2_IBRS in enum spectre_v2_mitigation
Jiri Kosina (3): x86/speculation: Apply IBPB more strictly to avoid cross-process data leak x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation x86/speculation: Propagate information about RSB filling mitigation to sysfs
Jonathan Corbet (2): locking/static_keys: Fix a silly typo locking/static_keys: Fix up the static keys documentation
Josh Poimboeuf (6): x86/speculation: Move arch_smt_update() call to after mitigation decisions x86/speculation/mds: Add SMT warning message cpu/speculation: Add 'mitigations=' cmdline option x86/speculation: Support 'mitigations=' cmdline option x86/speculation/mds: Add 'mitigations=' support for MDS x86/speculation/mds: Fix documentation typo
Konrad Rzeszutek Wilk (1): x86/speculation/mds: Print SMT vulnerable on MSBDS with mitigations off
Maciej W. Rozycki (2): MIPS: jump_label.c: Correct the span of the J instruction MIPS: jump_label.c: Handle the microMIPS J instruction encoding
Paolo Bonzini (1): locking/static_key: Fix concurrent static_key_slow_inc()
Peter Zijlstra (8): module, jump_label: Fix module locking jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} jump_label, locking/static_keys: Rename JUMP_LABEL_TYPE_* and related helpers to the static_key* pattern jump_label: Add jump_entry_key() helper locking/static_keys: Rework update logic locking/static_keys: Add a new static_key interface jump_label/x86: Work around asm build bug on older/backported GCCs x86/cpu: Sanitize FAM6_ATOM naming
Petr Mladek (1): module: add within_module() function
Sai Praneeth (1): x86/speculation: Support Enhanced IBRS on future CPUs
Tejun Heo (1): jump_label: make static_key_enabled() work on static_key_true/false types too
Thomas Gleixner (29): x86/speculation: Rename SSBD update functions x86/Kconfig: Select SCHED_SMT if SMP enabled x86/speculation: Rework SMT state change x86/speculation: Reorder the spec_v2 code x86/speculation: Mark string arrays const correctly x86/speculataion: Mark command line parser data __initdata x86/speculation: Unify conditional spectre v2 print functions x86/speculation: Add command line control for indirect branch speculation x86/process: Consolidate and simplify switch_to_xtra() code x86/speculation: Avoid __switch_to_xtra() calls x86/speculation: Prepare for conditional IBPB in switch_mm() x86/speculation: Split out TIF update x86/speculation: Prepare arch_smt_update() for PRCTL mode x86/speculation: Prevent stale SPEC_CTRL msr content x86/speculation: Add prctl() control for indirect branch speculation x86/speculation: Enable prctl mode for spectre_v2_user x86/speculation: Add seccomp Spectre v2 user space protection mode x86/speculation: Provide IBPB always command line options x86/msr-index: Cleanup bit defines x86/speculation: Consolidate CPU whitelists x86/speculation/mds: Add BUG_MSBDS_ONLY x86/speculation/mds: Add mds_clear_cpu_buffers() x86/speculation/mds: Clear CPU buffers on exit to user x86/speculation/mds: Conditionally clear CPU buffers on idle entry x86/speculation/mds: Add mitigation control for MDS x86/speculation/mds: Add sysfs reporting for MDS x86/speculation/mds: Add mitigation mode VMWERV Documentation: Move L1TF to separate directory Documentation: Add MDS vulnerability documentation
Tim Chen (7): x86/speculation: Update the TIF_SSBD comment x86/speculation: Clean up spectre_v2_parse_cmdline() x86/speculation: Remove unnecessary ret variable in cpu_show_common() x86/speculation: Move STIPB/IBPB string conditionals out of cpu_show_common() x86/speculation: Disable STIBP when enhanced IBRS is in use x86/speculation: Reorganize speculation control MSRs update x86/speculation: Prepare for per task indirect branch speculation control
Tony Luck (1): locking/static_keys: Provide DECLARE and well as DEFINE macros
Tyler Hicks (1): Documentation: Correct the possible MDS sysfs values
speck for Pawan Gupta (1): x86/mds: Add MDSUM variant to the MDS documentation