From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755598AbcCNND3 (ORCPT ); Mon, 14 Mar 2016 09:03:29 -0400 Received: from mail-wm0-f47.google.com ([74.125.82.47]:38568 "EHLO mail-wm0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752177AbcCNNDZ (ORCPT ); Mon, 14 Mar 2016 09:03:25 -0400 Date: Mon, 14 Mar 2016 14:03:20 +0100 From: Ingo Molnar To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, Thomas Gleixner , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , Peter Zijlstra , Andrew Morton Subject: [GIT PULL] x86/asm changes for v4.6 Message-ID: <20160314130320.GA20607@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Linus, Please pull the latest x86-asm-for-linus git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-asm-for-linus # HEAD: d05004944206cbbf1c453e179768163731c7c6f1 x86/cpufeature: Enable new AVX-512 features This is another big update. Main changes are: - lots of x86 system call (and other traps/exceptions) entry code enhancements. In particular the complex parts of the 64-bit entry code have been migrated to C code as well, and a number of dusty corners have been refreshed. (Andy Lutomirski) - vDSO special mapping robustification and general cleanups (Andy Lutomirski) - cpufeature refactoring, cleanups and speedups (Borislav Petkov) - lots of other changes ... out-of-topic modifications in x86-asm-for-linus: -------------------------------------------------- drivers/cpufreq/intel_pstate.c # bc696ca05f5a: x86/cpufeature: Replace the fs/btrfs/disk-io.c # bc696ca05f5a: x86/cpufeature: Replace the include/linux/mm.h # 1745cbc5d0de: mm: Add vm_insert_pfn_prot() include/linux/mm_types.h # f872f5400cc0: mm: Add a vm_special_mapping kernel/events/uprobes.c # 869ae76147ff: uprobes: __create_xol_area() lib/atomic64_test.c # cd4d09ec6f6c: x86/cpufeature: Carve out X8 mm/memory.c # 1745cbc5d0de: mm: Add vm_insert_pfn_prot() mm/mmap.c # f872f5400cc0: mm: Add a vm_special_mapping tools/testing/selftests/x86/Makefile# 6c25da5ad55d: x86/signal/64: Re-add suppor # e21d50f3864e: selftests/x86: Add check_ini # c31b34255b48: selftests/x86: Extend Makefi tools/testing/selftests/x86/check_initial_reg_state.c# e21d50f3864e: selftests/x86: Add check_ini tools/testing/selftests/x86/ptrace_syscall.c# 403613432222: selftests/x86: Add a test fo # adcfd23ead69: selftests/x86: Fix some erro tools/testing/selftests/x86/sigreturn.c# 4f6c89382293: selftests/x86: Add tests for tools/testing/selftests/x86/syscall_nt.c# a318beea224d: selftests/x86: In syscall_nt Thanks, Ingo ------------------> Alexander Kuleshov (3): x86/asm/entry: Remove unused SAVE_ALL/RESTORE_ALL macros for !CONFIG_x86_64 x86/asm: Remove unused L3_PAGE_OFFSET x86/entry/traps: Refactor preemption and interrupt flag handling Andy Lutomirski (42): mm: Add a vm_special_mapping.fault() method mm: Add vm_insert_pfn_prot() x86/vdso: Track each mm's loaded vDSO image as well as its base x86/vdso: Use .fault for the vDSO text mapping x86/vdso: Use ->fault() instead of remap_pfn_range() for the vvar mapping x86/vdso: Disallow vvar access to vclock IO for never-used vclocks selftests/x86: Extend Makefile to allow 64-bit-only tests selftests/x86: Add check_initial_reg_state() x86/syscalls: Refactor syscalltbl.sh x86/syscalls: Remove __SYSCALL_COMMON and __SYSCALL_X32 x86/syscalls: Move compat syscall entry handling into syscalltbl.sh x86/syscalls: Add syscall entry qualifiers x86/entry/64: Always run ptregs-using syscalls on the slow path x86/entry/64: Call all native slow-path syscalls with full pt-regs x86/entry/64: Stop using int_ret_from_sys_call in ret_from_fork x86/entry/64: Migrate the 64-bit syscall slow path to C x86/entry/64: Fix an IRQ state error on ptregs-using syscalls x86/entry/64: Fix fast-path syscall return register state x86/syscalls/64: Mark sys_iopl() as using ptregs x86/signal/64: Add a comment about sigcontext->fs and gs x86/signal/64: Fix SS if needed when delivering a 64-bit signal x86/signal/64: Re-add support for SS in the 64-bit signal context selftests/x86: Add tests for UC_SIGCONTEXT_SS and UC_STRICT_RESTORE_SS selftests/x86: Fix some error messages in ptrace_syscall selftests/x86: Add a test for syscall restart under ptrace x86/entry/compat: Keep TS_COMPAT set during signal delivery x86/entry/32: Introduce and use X86_BUG_ESPFIX instead of paravirt_enabled x86/asm-offsets: Remove PARAVIRT_enabled selftests/x86: In syscall_nt, test NT|TF as well x86/entry/compat: In SYSENTER, sink AC clearing below the existing FLAGS test x86/entry/32: Filter NT and speed up AC filtering in SYSENTER x86/entry/32: Restore FLAGS on SYSEXIT x86/entry/traps: Clear TIF_BLOCKSTEP on all debug exceptions x86/entry/traps: Clear DR6 early in do_debug() and improve the comment x86/entry: Vastly simplify SYSENTER TF (single-step) handling x86/entry: Only allocate space for tss_struct::SYSENTER_stack if needed x86/entry/32: Simplify and fix up the SYSENTER stack #DB/NMI fixup x86/entry/32: Add and check a stack canary for the SYSENTER stack x86/entry: Remove TIF_SINGLESTEP entry work x86/entry: Improve system call entry comments x86/entry/32: Change INT80 to be an interrupt gate x86/entry: Call enter_from_user_mode() with IRQs off Borislav Petkov (9): x86/cpufeature: Add AMD AVIC bit x86/cpufeature: Carve out X86_FEATURE_* x86/cpufeature: Replace the old static_cpu_has() with safe variant x86/cpufeature: Get rid of the non-asm goto variant x86/alternatives: Add an auxilary section x86/vdso: Use static_cpu_has() x86/cpufeature: Speed up cpu_feature_enabled() x86/ftrace, x86/asm: Kill ftrace_caller_end label x86/msr: Document msr-index.h rule for addition Brian Gerst (1): x86/alternatives: Discard dynamic check after init Denys Vlasenko (1): x86/asm/bitops: Force inlining of test_and_set_bit and friends Dmitry V. Levin (1): x86/signal: Cleanup get_nr_restart_syscall() Fenghua Yu (1): x86/cpufeature: Enable new AVX-512 features Ingo Molnar (5): Merge tag 'v4.5-rc1' into x86/asm, to refresh the branch before merging new changes Merge branch 'x86/cpu' into x86/asm, to avoid conflict Merge branch 'x86/urgent' into x86/asm, to pick up fixes Merge tag 'v4.5-rc7' into x86/asm, to pick up SMAP fix Merge branch 'x86-asm-for-linus' into tmp.tmp Jianyu Zhan (1): x86/entry/traps: Show unhandled signal for i386 in do_trap() Josh Poimboeuf (2): x86/asm: Clean up frame pointer macros x86/asm: Add C versions of frame pointer macros Matthew Wilcox (1): x86/mm: Honour passed pgprot in track_pfn_insert() and track_pfn_remap() Oleg Nesterov (1): uprobes: __create_xol_area() must nullify xol_mapping.fault Tony Luck (1): x86/cpufeature: Create a new synthetic cpu capability for machine check recovery ========== Documentation/kernel-parameters.txt | 2 +- Documentation/x86/x86_64/boot-options.txt | 2 + arch/x86/Kconfig.debug | 10 --- 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/entry/calling.h | 31 --------- arch/x86/entry/common.c | 106 ++++++++++++++--------------- arch/x86/entry/entry_32.S | 268 +++++++++++++++++++++++++++++++++++++++++++++++------------------------- arch/x86/entry/entry_64.S | 286 ++++++++++++++++++++++++++++++---------------------------------------------- arch/x86/entry/entry_64_compat.S | 102 +++++++++++++++++++--------- arch/x86/entry/syscall_32.c | 10 +-- arch/x86/entry/syscall_64.c | 13 ++-- arch/x86/entry/syscalls/syscall_64.tbl | 20 +++--- arch/x86/entry/syscalls/syscalltbl.sh | 58 ++++++++++++++-- arch/x86/entry/vdso/vdso2c.h | 7 -- arch/x86/entry/vdso/vdso32-setup.c | 1 - arch/x86/entry/vdso/vdso32/system_call.S | 2 +- arch/x86/entry/vdso/vma.c | 127 +++++++++++++++++++++------------- arch/x86/entry/vsyscall/vsyscall_gtod.c | 9 ++- 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/bitops.h | 36 +++++----- arch/x86/include/asm/clocksource.h | 9 +-- arch/x86/include/asm/cmpxchg.h | 1 + arch/x86/include/asm/cpufeature.h | 448 +++++++----------------------------------------------------------------------------------------------------------------- arch/x86/include/asm/cpufeatures.h | 300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arch/x86/include/asm/desc_defs.h | 23 +++++++ arch/x86/include/asm/fpu/internal.h | 15 ++-- arch/x86/include/asm/frame.h | 59 ++++++++++------ arch/x86/include/asm/irq_work.h | 2 +- arch/x86/include/asm/mce.h | 1 + arch/x86/include/asm/mmu.h | 3 +- arch/x86/include/asm/msr-index.h | 7 +- arch/x86/include/asm/mwait.h | 2 + arch/x86/include/asm/processor.h | 8 ++- arch/x86/include/asm/proto.h | 15 +++- arch/x86/include/asm/sighandling.h | 1 - arch/x86/include/asm/smap.h | 2 +- arch/x86/include/asm/smp.h | 1 - arch/x86/include/asm/thread_info.h | 9 ++- arch/x86/include/asm/tlbflush.h | 1 + arch/x86/include/asm/uaccess_64.h | 2 +- arch/x86/include/asm/vdso.h | 3 - arch/x86/include/asm/vgtod.h | 6 ++ arch/x86/include/uapi/asm/sigcontext.h | 32 ++++++++- arch/x86/include/uapi/asm/ucontext.h | 53 +++++++++++++-- arch/x86/kernel/apic/apic_numachip.c | 4 +- arch/x86/kernel/asm-offsets.c | 1 - arch/x86/kernel/asm-offsets_32.c | 7 +- arch/x86/kernel/asm-offsets_64.c | 10 +-- arch/x86/kernel/cpu/Makefile | 2 +- arch/x86/kernel/cpu/centaur.c | 2 +- arch/x86/kernel/cpu/common.c | 39 +++++++---- 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/mcheck/mce.c | 13 ++++ arch/x86/kernel/cpu/mkcapflags.sh | 6 +- arch/x86/kernel/cpu/mtrr/main.c | 2 +- arch/x86/kernel/cpu/transmeta.c | 2 +- arch/x86/kernel/e820.c | 1 + arch/x86/kernel/fpu/xstate.c | 3 + arch/x86/kernel/ftrace.c | 11 ++- arch/x86/kernel/head_32.S | 2 +- arch/x86/kernel/head_64.S | 1 - arch/x86/kernel/hpet.c | 1 + arch/x86/kernel/mcount_64.S | 14 ++-- arch/x86/kernel/msr.c | 2 +- arch/x86/kernel/process.c | 3 + arch/x86/kernel/signal.c | 127 +++++++++++++++++++++++++++------- arch/x86/kernel/traps.c | 138 ++++++++++++++++++++++++------------- arch/x86/kernel/verify_cpu.S | 2 +- arch/x86/kernel/vm86_32.c | 2 +- arch/x86/kernel/vmlinux.lds.S | 11 +++ 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/mm/pat.c | 4 +- arch/x86/mm/setup_nx.c | 1 + arch/x86/oprofile/op_model_amd.c | 1 - arch/x86/um/asm/barrier.h | 2 +- arch/x86/um/sys_call_table_32.c | 4 +- arch/x86/um/sys_call_table_64.c | 7 +- arch/x86/um/user-offsets.c | 6 +- drivers/cpufreq/intel_pstate.c | 2 +- fs/btrfs/disk-io.c | 2 +- include/linux/mm.h | 2 + include/linux/mm_types.h | 22 +++++- kernel/events/uprobes.c | 1 + lib/atomic64_test.c | 2 +- mm/memory.c | 25 ++++++- mm/mmap.c | 13 ++-- tools/testing/selftests/x86/Makefile | 17 +++-- tools/testing/selftests/x86/check_initial_reg_state.c | 109 +++++++++++++++++++++++++++++ tools/testing/selftests/x86/ptrace_syscall.c | 132 +++++++++++++++++++++++++++++++++++- tools/testing/selftests/x86/sigreturn.c | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- tools/testing/selftests/x86/syscall_nt.c | 57 +++++++++++++--- 105 files changed, 1977 insertions(+), 1199 deletions(-) create mode 100644 arch/x86/include/asm/cpufeatures.h create mode 100644 tools/testing/selftests/x86/check_initial_reg_state.c