I'm announcing the release of the 3.2.101 kernel. All users of the 3.2 kernel series should upgrade. The updated 3.2.y git tree can be found at: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-3.2.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.2.100 is attached to this message. Ben. ------------ Documentation/ABI/testing/sysfs-devices-system-cpu | 16 + Documentation/gcov.txt | 4 + Documentation/kernel-parameters.txt | 51 +- Documentation/speculation.txt | 90 ++++ Documentation/x86/pti.txt | 186 +++++++ Makefile | 4 +- arch/cris/arch-v10/lib/Makefile | 3 - arch/x86/Kconfig | 14 + arch/x86/Makefile | 8 + arch/x86/ia32/ia32entry.S | 54 +- arch/x86/include/asm/alternative-asm.h | 19 +- arch/x86/include/asm/alternative.h | 24 +- arch/x86/include/asm/asm.h | 17 +- arch/x86/include/asm/bitops.h | 2 + arch/x86/include/asm/cpufeature.h | 22 + arch/x86/include/asm/intel-family.h | 68 +++ arch/x86/include/asm/msr-index.h | 3 + arch/x86/include/asm/msr.h | 2 + arch/x86/include/asm/nospec-branch.h | 199 ++++++++ arch/x86/include/asm/processor.h | 6 +- arch/x86/include/asm/system.h | 68 ++- arch/x86/include/asm/thread_info.h | 3 - arch/x86/include/asm/uaccess.h | 8 +- arch/x86/include/asm/uaccess_32.h | 12 + arch/x86/include/asm/uaccess_64.h | 22 +- arch/x86/include/asm/xen/hypercall.h | 5 +- arch/x86/kernel/alternative.c | 31 +- arch/x86/kernel/cpu/Makefile | 4 +- arch/x86/kernel/cpu/amd.c | 28 +- arch/x86/kernel/cpu/bugs.c | 299 ++++++++++- arch/x86/kernel/cpu/bugs_64.c | 33 -- arch/x86/kernel/cpu/common.c | 34 +- arch/x86/kernel/entry_32.S | 24 +- arch/x86/kernel/entry_64.S | 31 +- arch/x86/kernel/irq_32.c | 9 +- arch/x86/kernel/kprobes.c | 23 +- arch/x86/kernel/vmlinux.lds.S | 7 + arch/x86/kvm/svm.c | 69 ++- arch/x86/kvm/vmx.c | 110 ++-- arch/x86/lib/Makefile | 2 + arch/x86/lib/checksum_32.S | 7 +- arch/x86/lib/getuser.S | 8 + arch/x86/lib/msr.c | 89 +++- arch/x86/lib/retpoline-export.c | 25 + arch/x86/lib/retpoline.S | 45 ++ arch/x86/lib/usercopy_32.c | 5 + drivers/base/Kconfig | 3 + drivers/base/cpu.c | 49 ++ drivers/edac/mce_amd.h | 2 - drivers/hv/hv.c | 25 +- drivers/media/common/tuners/max2165.c | 9 +- drivers/media/dvb/frontends/tda8261_cfg.h | 2 +- drivers/net/ethernet/realtek/atp.c | 58 +-- drivers/net/ethernet/realtek/atp.h | 2 - drivers/net/wireless/ath/ath6kl/hif.h | 2 +- drivers/net/wireless/ath/ath6kl/sdio.c | 4 +- .../net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 2 +- drivers/net/wireless/brcm80211/brcmsmac/aiutils.c | 3 - drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c | 5 +- drivers/net/wireless/rtlwifi/rtl8192de/dm.c | 6 +- drivers/net/wireless/rtlwifi/rtl8192se/phy.c | 3 + drivers/staging/wlan-ng/p80211netdev.c | 2 + drivers/usb/renesas_usbhs/mod_gadget.c | 6 +- drivers/usb/renesas_usbhs/mod_host.c | 6 +- drivers/usb/renesas_usbhs/pipe.h | 6 +- fs/compat.c | 10 +- fs/compat_ioctl.c | 1 - fs/internal.h | 2 +- fs/namespace.c | 26 +- include/linux/bitops.h | 3 + include/linux/cpu.h | 7 + include/linux/fdtable.h | 5 +- include/linux/init.h | 9 +- include/linux/kaiser.h | 2 +- include/linux/kconfig.h | 23 +- include/linux/module.h | 9 + include/linux/nospec.h | 59 +++ include/net/bluetooth/hci_core.h | 1 - kernel/gcov/Kconfig | 30 ++ kernel/gcov/Makefile | 32 +- kernel/gcov/base.c | 38 +- kernel/gcov/fs.c | 27 +- kernel/gcov/gcc_3_4.c | 115 +++++ kernel/gcov/gcc_4_7.c | 565 +++++++++++++++++++++ kernel/gcov/gcov.h | 65 +-- kernel/kprobes.c | 10 +- kernel/module.c | 11 + net/bluetooth/hci_conn.c | 16 - scripts/mod/modpost.c | 58 ++- security/selinux/ss/services.c | 54 +- 90 files changed, 2688 insertions(+), 478 deletions(-) Alexandre Oliva (1): brcmfmac: work-around gcc 4.7 build issue Andi Kleen (5): brcm80211: Remove bogus memcpy in ai_detach ath6kl: fix uninitialized variable in ath6kl_sdio_enable_scatter() x86/retpoline/irq32: Convert assembler indirect jumps x86/retpoline: Optimize inline assembler for vmexit_fill_RSB module/retpoline: Warn about missing retpoline in module Andrey Ryabinin (1): x86/asm: Use register variable to get stack pointer value Andy Lutomirski (2): x86/cpu: Factor out application of forced CPU caps x86/asm: Make asm/alternative.h safe from assembly Arnd Bergmann (2): Turn off -Wmaybe-uninitialized when building with -Os x86: fix build warnign with 32-bit PAE Avi Kivity (2): KVM: VMX: Make use of asm.h KVM: SVM: Make use of asm.h Ben Hutchings (2): x86/syscall: Sanitize syscall table de-references under speculation Linux 3.2.101 Borislav Petkov (9): x86/bitops: Move BIT_64() for a wider use x86, cpu: Expand cpufeature facility to include cpu bugs x86: Add another set of MSR accessor functions x86/cpu: Merge bugs.c and bugs_64.c x86/alternatives: Guard NOPs optimization x86/alternatives: Fix ALTERNATIVE_2 padding generation properly x86/alternatives: Fix optimize_nops() checking x86/nospec: Fix header guards names x86/bugs: Drop one "mitigation" from dmesg Colin Ian King (1): x86/spectre: Fix spelling mistake: "vunerable"-> "vulnerable" Dan Carpenter (1): x86/spectre: Fix an error message Dan Williams (11): array_index_nospec: Sanitize speculative array de-references x86: Implement array_index_mask_nospec x86: Introduce barrier_nospec x86/get_user: Use pointer masking to limit speculation vfs, fdtable: Prevent bounds-check bypass via speculative execution x86/spectre: Report get_user mitigation for spectre_v1 x86/kvm: Update spectre-v1 mitigation nospec: Kill array_index_nospec_mask_check() nospec: Include dependency x86: Introduce __uaccess_begin_nospec() and uaccess_try_nospec x86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec Danny Kukawka (1): max2165: trival fix for some -Wuninitialized warning Darren Kenny (1): x86/speculation: Fix typo IBRS_ATT, which should be IBRS_ALL Dave Hansen (2): x86/Documentation: Add PTI description x86/cpu/intel: Introduce macros for Intel family numbers David Woodhouse (14): x86/alternatives: Add missing ' ' at end of ALTERNATIVE inline asm x86/cpufeatures: Add X86_BUG_SPECTRE_V[12] sysfs/cpu: Fix typos in vulnerability documentation x86/retpoline: Add initial retpoline support x86/spectre: Add boot time option to select Spectre v2 mitigation x86/retpoline/entry: Convert entry assembler indirect jumps x86/retpoline/ftrace: Convert ftrace assembler indirect jumps x86/retpoline/hyperv: Convert assembler indirect jumps x86/retpoline/xen: Convert Xen hypercall indirect jumps x86/retpoline/checksum32: Convert assembler indirect jumps x86/retpoline: Fill return stack buffer on vmexit x86/retpoline: Fill RSB on context switch for affected CPUs x86/retpoline: Avoid retpolines for built-in __init functions x86/cpufeatures: Clean up Spectre v2 related CPUID flags Dou Liyang (1): x86/spectre: Check CONFIG_RETPOLINE in command line parser Frantisek Hrbata (3): gcov: move gcov structs definitions to a gcc version specific file gcov: add support for gcc 4.7 gcov format gcov: compile specific gcov implementation based on gcc version H. Peter Anvin (1): x86, alternative: Add header guards to Han Shen (2): rtl8192c:dm: Properly initialize local array and set value. Removed unused typedef to avoid "unused local typedef" warnings. Jan-Simon Möller (1): x86, asm: Extend definitions of _ASM_* with a raw format Jim Mattson (1): kvm: vmx: Scrub hardware GPRs at VM-exit Josh Poimboeuf (1): x86/paravirt: Remove 'noreplace-paravirt' cmdline option Kalle Valo (1): ath6kl: fix struct hif_scatter_req list handling KarimAllah Ahmed (1): x86/spectre: Simplify spectre_v2 command line parsing Kuninori Morimoto (2): usb: renesas_usbhs: fixup __usbhs_for_each_pipe 1st pos usb: renesas_usbhs: tidyup original usbhsx_for_each_xxx macro Larry Finger (3): rtlwifi: rtl8192se: Fix gcc 4.7.x warning rtlwifi: rtl8192c: Fix W=1 warning rtlwifi: rtl8192de: Fix W=1 build warnings Mark Rutland (1): Documentation: Document array_index_nospec Masahiro Yamada (1): kconfig.h: use __is_defined() to check if MODULE is defined Masami Hiramatsu (3): retpoline: Introduce start/end markers of indirect thunk kprobes/x86: Blacklist indirect thunk functions for kprobes kprobes/x86: Disable optimizing on the function jumps to indirect thunk Mathias Krause (1): modpost: reduce visibility of symbols and constify r/o arrays Paul Bolle (2): budget-av: only use t_state if initialized atp: remove set_rx_mode_8012() Paul Gortmaker (3): modpost: don't emit section mismatch warnings for compiler optimizations kconfig: fix IS_ENABLED to not require all options to be defined cris: Remove old legacy "-traditional" flag from arch-v10/lib/Makefile Peter Huewe (1): staging/wlan-ng: Fix 'Branch condition evaluates to a garbage value' in p80211netdev.c Srinivas Pandruvada (1): bitops: Introduce BIT_ULL Syam Sidhardhan (1): Bluetooth: Remove unused hci_le_ltk_reply() Thomas Gleixner (8): x86/cpufeatures: Make CPU bugs sticky x86/cpufeatures: Add X86_BUG_CPU_INSECURE x86/pti: Rename BUG_CPU_INSECURE to BUG_CPU_MELTDOWN sysfs/cpu: Add vulnerability folder x86/cpu: Implement CPU vulnerabilites sysfs functions x86/alternatives: Make optimize_nops() interrupt safe and synced x86/retpoline: Remove compile time warning x86/cpu/bugs: Make retpoline module warning conditional Tim Gardner (2): SELinux: security_load_policy: Silence frame-larger-than warning fs: namespace: suppress 'may be used uninitialized' warnings Tom Lendacky (4): x86/cpu, x86/pti: Do not enable PTI on AMD processors x86/cpu/AMD: Make LFENCE a serializing instruction x86/cpu/AMD: Use LFENCE_RDTSC in preference to MFENCE_RDTSC x86/retpoline: Add LFENCE to the retpoline/RSB filling RSB macros Waiman Long (1): x86/retpoline: Remove the esp/rsp thunk Will Deacon (1): nospec: Move array_index_nospec() parameter checking into separate macro Yuan Pengfei (1): gcov: add support for GCC 4.9 Yunlian Jiang (1): rtlwifi: initialize local array and set value. zhenwei.pi (1): x86/pti: Document fix wrong index