From patchwork Tue Sep 5 15:01:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catalin Marinas X-Patchwork-Id: 810190 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="BqL+FrRC"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xmqg72pDvz9t2m for ; Wed, 6 Sep 2017 01:01:39 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:To:From :Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=2xb7l63eI9XkVq118ta8htD6XWfc8RUfpCm17Ub93aw=; b=BqL+FrRCVjYuwI 3UFea3t0Ehp9MPPiAb1q5pBe7+7jQcJjwwXqn7CRZrb+VdMz6aPOVRuir5GH4hOHbyhLtWmjBUfQA zux3ec5GrYzMKTeCYIWo5w9m2ZfTJoqPbVng86CWYTdseC4h9ogg8hIY6uwBy4wWfkM5IIWCyh2+N Q5ZZQkefEdEUla1vpaMbrfnr6KVw6PHDyQjiiWlgjJBxlCbqxlsk+BJVbWD7NS/+6LkE3xWJ9uHM1 hKITB4RrsGmg1o8Pl9NVQkhudyFAc6K0KfBVmB2iQK6Ln23hAf6OGL/6brHUuuxQHPvg31jWCBq8I 2GKN4DatOG9kwDoCs7dg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dpFM8-0004kV-Bx; Tue, 05 Sep 2017 15:01:36 +0000 Received: from foss.arm.com ([217.140.101.70]) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dpFM3-0004hn-O7 for linux-arm-kernel@lists.infradead.org; Tue, 05 Sep 2017 15:01:34 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DE2FA13D5; Tue, 5 Sep 2017 08:01:10 -0700 (PDT) Received: from armageddon.cambridge.arm.com (armageddon.cambridge.arm.com [10.1.206.84]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B370C3F540; Tue, 5 Sep 2017 08:01:09 -0700 (PDT) Date: Tue, 5 Sep 2017 16:01:07 +0100 From: Catalin Marinas To: Linus Torvalds Subject: [GIT PULL] arm64 updates for 4.14 Message-ID: <20170905150104.ihs6uo4sh54gjvnf@armageddon.cambridge.arm.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: NeoMutt/20170113 (1.7.2) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170905_080131_801084_629E9AC7 X-CRM114-Status: GOOD ( 22.52 ) X-Spam-Score: -6.9 (------) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-6.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [217.140.101.70 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Will Deacon , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org Hi Linus, Please pull the arm64 updates for 4.14 below. There is a minor conflict in arch/arm64/kernel/fpsimd.c, resolved to the changes introduced in this pull request (use local_bh_* instead of preempt_*). Thanks. The following changes since commit aae4e7a8bc44722fe70d58920a36916b1043195e: Linux 4.13-rc4 (2017-08-06 18:44:49 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux tags/arm64-upstream for you to fetch changes up to d1be5c99a0341249bf6f74eb1cbc3d5fc4ef2be7: arm64: cleanup {COMPAT_,}SET_PERSONALITY() macro (2017-08-22 18:41:47 +0100) ---------------------------------------------------------------- arm64 updates for 4.14: - VMAP_STACK support, allowing the kernel stacks to be allocated in the vmalloc space with a guard page for trapping stack overflows. One of the patches introduces THREAD_ALIGN and changes the generic alloc_thread_stack_node() to use this instead of THREAD_SIZE (no functional change for other architectures) - Contiguous PTE hugetlb support re-enabled (after being reverted a couple of times). We now have the semantics agreed in the generic mm layer together with API improvements so that the architecture code can detect between contiguous and non-contiguous huge PTEs - Initial support for persistent memory on ARM: DC CVAP instruction exposed to user space (HWCAP) and the in-kernel pmem API implemented - raid6 improvements for arm64: faster algorithm for the delta syndrome and implementation of the recovery routines using Neon - FP/SIMD refactoring and removal of support for Neon in interrupt context. This is in preparation for full SVE support - PTE accessors converted from inline asm to cmpxchg so that we can use LSE atomics if available (ARMv8.1) - Perf support for Cortex-A35 and A73 - Non-urgent fixes and cleanups ---------------------------------------------------------------- Ard Biesheuvel (8): arm64: neon: replace generic definition of may_use_simd() arm64: unwind: disregard frame.sp when validating frame pointer arm64: unwind: reference pt_regs via embedded stack frame arm64: unwind: remove sp from struct stackframe md/raid6: use faster multiplication for ARM NEON delta syndrome md/raid6: implement recovery using ARM NEON intrinsics arm64: kernel: remove {THREAD,IRQ_STACK}_START_SP arm64: assembler: allow adr_this_cpu to use the stack pointer Arnd Bergmann (2): arm64: fix pmem interface definition ACPI/IORT: Fix build regression without IOMMU Catalin Marinas (12): arm64: neon: Temporarily add a kernel_mode_begin_partial() definition arm64: neon: Export kernel_neon_busy to loadable modules Merge branch 'arm64/exception-stack' of git://git.kernel.org/.../mark/linux into for-next/core Merge tag 'arm64-iort-for-v4.14' of git://git.kernel.org/.../lpieralisi/linux into for-next/core Merge branch 'arm64/vmap-stack' of git://git.kernel.org/.../mark/linux into for-next/core Merge branch 'for-next/perf' of git://git.kernel.org/.../will/linux into for-next/core Merge branch 'for-next/kernel-mode-neon' into for-next/core arm64: Convert pte handling from inline asm to using (cmp)xchg kvm: arm64: Convert kvm_set_s2pte_readonly() from inline asm to cmpxchg() arm64: Move PTE_RDONLY bit handling out of set_pte_at() arm64: Ignore hardware dirty bit updates in ptep_set_wrprotect() arm64: Remove the !CONFIG_ARM64_HW_AFDBM alternative code paths Dave Martin (8): arm64: neon: Add missing header guard in arm64: fpsimd: Consistently use __this_cpu_ ops where appropriate arm64: neon: Allow EFI runtime services to use FPSIMD in irq context arm64: neon: Remove support for nested or hardirq kernel-mode NEON arm64: syscallno is secretly an int, make it official arm64: Abstract syscallno manipulation arm64: neon: Forbid when irqs are disabled arm64: neon/efi: Make EFI fpsimd save/restore variables static Dmitry Safonov (1): arm64/vdso: Support mremap() for vDSO Dou Liyang (1): arm64: numa: Remove the unused parent_node() macro Ganapatrao Kulkarni (1): ACPI/IORT: numa: Add numa node mapping for smmuv3 devices Hoeun Ryu (1): arm64: kexec: have own crash_smp_send_stop() for crash dump for nonpanic cores Julien Thierry (4): arm64: Decode information from ESR upon mem faults arm64: perf: Connect additional events to pmu counters arm64: perf: add support for Cortex-A73 arm64: perf: add support for Cortex-A35 Kevin Brodsky (1): arm64: compat: Remove leftover variable declaration Mark Rutland (16): arm64: Add ASM_BUG() arm64: consistently use bl for C exception entry arm64: move non-entry code out of .entry.text arm64: unwind: avoid percpu indirection for irq stack arm64: remove __die()'s stack dump fork: allow arch-override of VMAP stack alignment arm64: factor out PAGE_* and CONT_* definitions arm64: clean up THREAD_* definitions arm64: clean up irq stack definitions arm64: move SEGMENT_ALIGN to efi/arm64: add EFI_KIMG_ALIGN arm64: factor out entry stack manipulation arm64: use an irq stack pointer arm64: add basic VMAP_STACK support arm64: add on_accessible_stack() arm64: add VMAP_STACK overflow detection Pratyush Anand (1): arm64: perf: Allow more than one cycle counter to be used Punit Agrawal (4): arm64: hugetlb: Handle swap entries in huge_pte_offset() for contiguous hugepages arm64: hugetlb: Override huge_pte_clear() to support contiguous hugepages arm64: hugetlb: Override set_huge_swap_pte_at() to support contiguous hugepages arm64: Re-enable support for contiguous hugepages Robin Murphy (8): ACPI/IORT: Handle PCI aliases properly for IOMMUs arm64: mm: Fix set_memory_valid() declaration arm64: Convert __inval_cache_range() to area-based arm64: Expose DC CVAP to userspace arm64: Handle trapped DC CVAP arm64: Implement pmem API support arm64: uaccess: Implement *_flushcache variants arm64: uaccess: Add the uaccess_flushcache.c file Steve Capper (5): arm64: hugetlb: set_huge_pte_at Add WARN_ON on !pte_present arm64: hugetlb: Introduce pte_pgprot helper arm64: hugetlb: Spring clean huge pte accessors arm64: hugetlb: Add break-before-make logic for contiguous entries arm64: hugetlb: Cleanup setup_hugepagesz Tai Nguyen (1): perf: xgene: Remove unnecessary managed resources cleanup Vladimir Murzin (2): arm64: dma-mapping: Do not pass data to gen_pool_set_algo() arm64: dma-mapping: Mark atomic_pool as __ro_after_init Will Deacon (2): arm64: perf: Allow standard PMUv3 events to be extended by the CPU type arm64: perf: Remove redundant entries from CPU-specific event maps Yury Norov (2): arm64: introduce separated bits for mm_context_t flags arm64: cleanup {COMPAT_,}SET_PERSONALITY() macro Documentation/arm64/cpu-feature-registers.txt | 2 + Documentation/devicetree/bindings/arm/pmu.txt | 2 + arch/arm64/Kconfig | 13 ++ arch/arm64/include/asm/Kbuild | 1 - arch/arm64/include/asm/asm-bug.h | 54 +++++ arch/arm64/include/asm/assembler.h | 25 +- arch/arm64/include/asm/bug.h | 35 +-- arch/arm64/include/asm/cacheflush.h | 4 +- arch/arm64/include/asm/cpucaps.h | 3 +- arch/arm64/include/asm/efi.h | 13 +- arch/arm64/include/asm/elf.h | 2 - arch/arm64/include/asm/esr.h | 42 +++- arch/arm64/include/asm/fpsimd.h | 16 +- arch/arm64/include/asm/fpsimdmacros.h | 56 ----- arch/arm64/include/asm/hugetlb.h | 9 +- arch/arm64/include/asm/irq.h | 42 ---- arch/arm64/include/asm/kvm_mmu.h | 21 +- arch/arm64/include/asm/memory.h | 53 +++++ arch/arm64/include/asm/mmu.h | 2 + arch/arm64/include/asm/neon.h | 16 +- arch/arm64/include/asm/numa.h | 3 - arch/arm64/include/asm/page-def.h | 34 +++ arch/arm64/include/asm/page.h | 12 +- arch/arm64/include/asm/pgtable-prot.h | 18 +- arch/arm64/include/asm/pgtable.h | 103 ++++----- arch/arm64/include/asm/processor.h | 4 +- arch/arm64/include/asm/ptrace.h | 31 ++- arch/arm64/include/asm/signal32.h | 2 - arch/arm64/include/asm/simd.h | 56 +++++ arch/arm64/include/asm/smp.h | 2 +- arch/arm64/include/asm/stacktrace.h | 61 ++++- arch/arm64/include/asm/string.h | 4 + arch/arm64/include/asm/sysreg.h | 1 + arch/arm64/include/asm/thread_info.h | 13 +- arch/arm64/include/asm/traps.h | 5 + arch/arm64/include/asm/uaccess.h | 12 + arch/arm64/include/uapi/asm/hwcap.h | 1 + arch/arm64/kernel/asm-offsets.c | 1 + arch/arm64/kernel/cpufeature.c | 13 ++ arch/arm64/kernel/cpuinfo.c | 1 + arch/arm64/kernel/entry-fpsimd.S | 24 -- arch/arm64/kernel/entry.S | 283 +++++++++++++++-------- arch/arm64/kernel/fpsimd.c | 170 ++++++++++---- arch/arm64/kernel/head.S | 22 +- arch/arm64/kernel/hibernate.c | 4 +- arch/arm64/kernel/irq.c | 40 +++- arch/arm64/kernel/machine_kexec.c | 2 +- arch/arm64/kernel/perf_callchain.c | 1 - arch/arm64/kernel/perf_event.c | 208 +++++++---------- arch/arm64/kernel/probes/uprobes.c | 2 +- arch/arm64/kernel/process.c | 13 +- arch/arm64/kernel/ptrace.c | 5 +- arch/arm64/kernel/return_address.c | 1 - arch/arm64/kernel/signal.c | 10 +- arch/arm64/kernel/signal32.c | 2 +- arch/arm64/kernel/smp.c | 14 +- arch/arm64/kernel/stacktrace.c | 60 +---- arch/arm64/kernel/time.c | 1 - arch/arm64/kernel/traps.c | 79 ++++--- arch/arm64/kernel/vdso.c | 15 ++ arch/arm64/kernel/vmlinux.lds.S | 18 +- arch/arm64/kvm/hyp/s2-setup.c | 2 +- arch/arm64/lib/Makefile | 2 + arch/arm64/lib/uaccess_flushcache.c | 47 ++++ arch/arm64/mm/cache.S | 37 ++- arch/arm64/mm/dma-mapping.c | 4 +- arch/arm64/mm/fault.c | 77 +++++-- arch/arm64/mm/flush.c | 16 ++ arch/arm64/mm/hugetlbpage.c | 314 +++++++++++++++++++------- drivers/acpi/arm64/iort.c | 140 +++++++----- drivers/firmware/efi/libstub/arm64-stub.c | 6 +- drivers/perf/arm_pmu.c | 6 + drivers/perf/xgene_pmu.c | 74 ++---- include/linux/raid/pq.h | 1 + include/linux/thread_info.h | 4 + kernel/fork.c | 3 +- lib/raid6/Makefile | 4 +- lib/raid6/algos.c | 3 + lib/raid6/neon.uc | 33 ++- lib/raid6/recov_neon.c | 110 +++++++++ lib/raid6/recov_neon_inner.c | 117 ++++++++++ 81 files changed, 1840 insertions(+), 922 deletions(-) create mode 100644 arch/arm64/include/asm/asm-bug.h create mode 100644 arch/arm64/include/asm/page-def.h create mode 100644 arch/arm64/include/asm/simd.h create mode 100644 arch/arm64/lib/uaccess_flushcache.c create mode 100644 lib/raid6/recov_neon.c create mode 100644 lib/raid6/recov_neon_inner.c