From patchwork Fri Oct 19 17:59:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catalin Marinas X-Patchwork-Id: 986978 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=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="iLnkvehJ"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::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 42cDGd5X05z9sD9 for ; Sat, 20 Oct 2018 05:00:25 +1100 (AEDT) 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=n7suFdpTmcoC8sXhExCuxyGfrHW1ECPpjcsg5YNsMfc=; b=iLnkvehJ0c1hi+ FG7fEj6gx74nQXVmomH5aWzhjOICJ7/fj853RX36schAh3x95X3hWdlOUNcJRaxfZGl5eE5mGmmrV ScHpW0YuNFzzjPAmlwnQR0gAVzRUlvmZ6iTsPbxAh+GZ8B7L3o0mofWKks8lcMjqbCWzUwEgAPdcN 5EWFFsDoZmxYnx2s3nUEbgbB7ySo/unS8FH3y+IyMnV2Oi7SFU3Du93Qo2XSRcPMTQe+lOcaCf7ra ejuS06ZXyu1Zo5k2QUELtsu9uv5HqJrRue2IACuh9lMS0oX3DLMTnEgE9aQNj3Et5oncSOv6cJRHC Mq1vrxwB9UeEmyHoc2ZQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gDZ4K-0001Mv-45; Fri, 19 Oct 2018 18:00:16 +0000 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70] helo=foss.arm.com) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gDZ4C-0000Zg-S6 for linux-arm-kernel@lists.infradead.org; Fri, 19 Oct 2018 18:00:10 +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 A6F88A78; Fri, 19 Oct 2018 10:59:57 -0700 (PDT) Received: from arrakis.emea.arm.com (arrakis.cambridge.arm.com [10.1.196.80]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 74F803F71D; Fri, 19 Oct 2018 10:59:56 -0700 (PDT) Date: Fri, 19 Oct 2018 18:59:53 +0100 From: Catalin Marinas To: Linus Torvalds , Greg Kroah-Hartman Subject: [GIT PULL] arm64 updated for 4.20 Message-ID: <20181019175952.GA57321@arrakis.emea.arm.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181019_110008_963949_6C45982B X-CRM114-Status: GOOD ( 23.86 ) X-Spam-Score: -5.0 (-----) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-5.0 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 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, Greg, I'm sending the pull request for 4.20 slightly earlier as I'm on holiday next week (not in Edinburgh). Apart from some new arm64 features and clean-ups, this request also contains the core mmu_gather changes for tracking the levels of the page table being cleared and a minor update to the generic compat_sys_sigaltstack() introducing COMPAT_SIGMINSKSZ. Thanks. The following changes since commit 57361846b52bc686112da6ca5368d11210796804: Linux 4.19-rc2 (2018-09-02 14:37:30 -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 4debef5510071032c6d5dace31ca1cc42a120073: arm64: KVM: Guests can skip __install_bp_hardening_cb()s HYP work (2018-10-19 15:37:25 +0100) ---------------------------------------------------------------- arm64 updates for 4.20: - Core mmu_gather changes which allow tracking the levels of page-table being cleared together with the arm64 low-level flushing routines - Support for the new ARMv8.5 PSTATE.SSBS bit which can be used to mitigate Spectre-v4 dynamically without trapping to EL3 firmware - Introduce COMPAT_SIGMINSTKSZ for use in compat_sys_sigaltstack - Optimise emulation of MRS instructions to ID_* registers on ARMv8.4 - Support for Common Not Private (CnP) translations allowing threads of the same CPU to share the TLB entries - Accelerated crc32 routines - Move swapper_pg_dir to the rodata section - Trap WFI instruction executed in user space - ARM erratum 1188874 workaround (arch_timer) - Miscellaneous fixes and clean-ups ---------------------------------------------------------------- Andrew Murray (1): arm64: Remove unused VGA console support Anshuman Khandual (8): arm64/cpufeatures: Introduce ESR_ELx_SYS64_ISS_RT() arm64/cpufeatures: Factorize emulate_mrs() arm64/cpufeatures: Emulate MRS instructions by parsing ESR_ELx.ISS arm64/mm: Use ESR_ELx_FSC macro while decoding fault exception arm64/mm: Reorganize arguments for is_el1_permission_fault() arm64/mm: Define esr_to_debug_fault_info() arm64/numa: Report correct memblock range for the dummy node arm64/numa: Unify common error path in numa_init() Ard Biesheuvel (4): lib/crc32: make core crc32() routines weak so they can be overridden arm64: cpufeature: add feature for CRC32 instructions arm64/lib: add accelerated crc32 routines arm64: remove unused asm/compiler.h header file Arnd Bergmann (1): arm64: arch_timer: avoid unused function warning Giacomo Travaglini (1): arm64: docs: Fix typos in ELF hwcaps Hari Vyas (1): arm64: fix for bad_mode() handler to always result in panic James Morse (6): arm64: Kconfig: Remove ARCH_HAS_HOLES_MEMORYMODEL arm64: mm: Use #ifdef for the __PAGETABLE_P?D_FOLDED defines MAINTAINERS: fix bad sdei paths Revert "arm64: uaccess: implement unsafe accessors" arm64: mm: Use __pa_symbol() for set_swapper_pgd() arm64: KVM: Guests can skip __install_bp_hardening_cb()s HYP work Julien Thierry (4): arm64: uaccess: implement unsafe accessors arm64: daifflags: Use irqflags functions for daifflags arm64: Use daifflag_restore after bp_hardening arm64: xen: Use existing helper to check interrupt status Jun Yao (4): arm64/mm: Pass ttbr1 as a parameter to __enable_mmu() arm64/mm: Separate boot-time page tables from swapper_pg_dir arm64/mm: use fixmap to modify swapper_pg_dir arm64/mm: move runtime pgds to rodata Kyrylo Tkachov (1): arm64: Fix typo in a comment in arch/arm64/mm/kasan_init.c Marc Zyngier (9): arm64: Add decoding macros for CP15_32 and CP15_64 traps arm64: compat: Add separate CP15 trapping hook arm64: compat: Add condition code checks and IT advance arm64: compat: Add cp15_32 and cp15_64 handler arrays arm64: compat: Add CNTVCT trap handler arm64: compat: Add CNTFRQ trap handler arm64: arch_timer: Add workaround for ARM erratum 1188873 arm64: Trap WFI executed in userspace arm64: Add silicon-errata.txt entry for ARM erratum 1188873 Peter Zijlstra (2): asm-generic/tlb: Track freeing of page-table directories in struct mmu_gather mm/memory: Move mmu_gather and TLB invalidation code into its own file Punit Agrawal (1): Documentation/arm64: HugeTLB page implementation Rob Herring (1): perf: Convert to using %pOFn instead of device_node.name Shaokun Zhang (1): arm64: mm: Drop the unused cpu parameter Suzuki K Poulose (4): arm64: sysreg: Clean up instructions for modifying PSTATE fields arm64: cpufeature: ctr: Fix cpu capability check for late CPUs arm64: cpufeature: Fix handling of CTR_EL0.IDC field arm64: cpufeature: Trap CTR_EL0 access only where it is necessary Tri Vo (1): arm64: lse: remove -fcall-used-x0 flag Vladimir Murzin (2): arm64: mm: Support Common Not Private translations arm64: KVM: Enable Common Not Private translations Will Deacon (26): asm-generic/tlb: Guard with #ifdef CONFIG_MMU asm-generic/tlb: Track which levels of the page tables have been cleared MAINTAINERS: Add entry for MMU GATHER AND TLB INVALIDATION Merge branch 'tlb/asm-generic' into aarch64/for-next/core arm64: dump: Use consistent capitalisation for page-table dumps arm64: tlb: Use last-level invalidation in flush_tlb_kernel_range() arm64: tlb: Add DSB ISHST prior to TLBI in __flush_tlb_[kernel_]pgtable() arm64: pgtable: Implement p[mu]d_valid() and check in set_p[mu]d() arm64: tlb: Justify non-leaf invalidation in flush_tlb_range() arm64: tlbflush: Allow stride to be specified for __flush_tlb_range() arm64: tlb: Remove redundant !CONFIG_HAVE_RCU_TABLE_FREE code arm64: tlb: Adjust stride and type of TLBI according to mmu_gather arm64: tlb: Avoid synchronous TLBIs when freeing page tables arm64: tlb: Rewrite stale comment in asm/tlbflush.h arm64: Fix silly typo in comment arm64: cpufeature: Detect SSBS and advertise to userspace arm64: ssbd: Drop #ifdefs for PR_SPEC_STORE_BYPASS arm64: entry: Allow handling of undefined instructions from EL1 arm64: ssbd: Add support for PSTATE.SSBS rather than trapping to EL3 KVM: arm64: Set SCTLR_EL2.DSSBS if SSBD is forcefully disabled and !vhe arm64: cpu: Move errata and feature enable callbacks closer to callers arm64: force_signal_inject: WARN if called from kernel context arm64: cpu_errata: Remove ARM64_MISMATCHED_CACHE_LINE_SIZE signal: Introduce COMPAT_SIGMINSTKSZ for use in compat_sys_sigaltstack arm64: compat: Provide definition for COMPAT_SIGMINSTKSZ arm64: docs: Document SSBS HWCAP zhong jiang (1): arm64/kprobes: remove an extra semicolon in arch_prepare_kprobe Documentation/arm64/elf_hwcaps.txt | 12 +- Documentation/arm64/hugetlbpage.txt | 38 +++++ Documentation/arm64/silicon-errata.txt | 1 + MAINTAINERS | 17 ++- arch/arm/include/asm/kvm_arm.h | 1 + arch/arm/include/asm/kvm_mmu.h | 5 + arch/arm64/Kconfig | 34 ++++- arch/arm64/include/asm/assembler.h | 7 +- arch/arm64/include/asm/cache.h | 40 +++++ arch/arm64/include/asm/compat.h | 1 + arch/arm64/include/asm/compiler.h | 30 ---- arch/arm64/include/asm/cpucaps.h | 7 +- arch/arm64/include/asm/cpufeature.h | 9 +- arch/arm64/include/asm/cputype.h | 2 + arch/arm64/include/asm/daifflags.h | 15 +- arch/arm64/include/asm/esr.h | 77 ++++++++++ arch/arm64/include/asm/kernel-pgtable.h | 2 +- arch/arm64/include/asm/kvm_arm.h | 1 + arch/arm64/include/asm/kvm_emulate.h | 2 +- arch/arm64/include/asm/kvm_host.h | 11 ++ arch/arm64/include/asm/kvm_mmu.h | 5 + arch/arm64/include/asm/mmu.h | 3 + arch/arm64/include/asm/mmu_context.h | 17 ++- arch/arm64/include/asm/page.h | 2 - arch/arm64/include/asm/pgtable-hwdef.h | 2 + arch/arm64/include/asm/pgtable.h | 48 +++++- arch/arm64/include/asm/processor.h | 11 +- arch/arm64/include/asm/ptrace.h | 1 + arch/arm64/include/asm/sysreg.h | 44 ++++-- arch/arm64/include/asm/tlb.h | 34 ++--- arch/arm64/include/asm/tlbflush.h | 112 +++++++++----- arch/arm64/include/asm/uaccess.h | 1 - arch/arm64/include/asm/xen/events.h | 2 +- arch/arm64/include/uapi/asm/hwcap.h | 1 + arch/arm64/include/uapi/asm/ptrace.h | 1 + arch/arm64/kernel/cpu_errata.c | 96 +++++++++--- arch/arm64/kernel/cpufeature.c | 195 +++++++++++++++++++++--- arch/arm64/kernel/cpuinfo.c | 11 +- arch/arm64/kernel/entry.S | 18 ++- arch/arm64/kernel/head.S | 40 ++--- arch/arm64/kernel/probes/kprobes.c | 2 +- arch/arm64/kernel/process.c | 4 + arch/arm64/kernel/psci.c | 1 - arch/arm64/kernel/setup.c | 4 - arch/arm64/kernel/sleep.S | 1 + arch/arm64/kernel/ssbd.c | 24 ++- arch/arm64/kernel/suspend.c | 4 + arch/arm64/kernel/traps.c | 211 ++++++++++++++++++++++++-- arch/arm64/kernel/vmlinux.lds.S | 35 +++-- arch/arm64/kvm/hyp-init.S | 3 + arch/arm64/kvm/hyp/sysreg-sr.c | 11 ++ arch/arm64/lib/Makefile | 4 +- arch/arm64/lib/crc32.S | 60 ++++++++ arch/arm64/mm/context.c | 11 +- arch/arm64/mm/dump.c | 6 +- arch/arm64/mm/fault.c | 38 ++--- arch/arm64/mm/init.c | 2 - arch/arm64/mm/kasan_init.c | 2 +- arch/arm64/mm/mmu.c | 46 +++--- arch/arm64/mm/numa.c | 13 +- arch/arm64/mm/proc.S | 11 +- drivers/clocksource/arm_arch_timer.c | 15 ++ drivers/perf/arm_pmu_platform.c | 6 +- include/asm-generic/tlb.h | 86 +++++++++-- include/linux/compat.h | 3 + kernel/signal.c | 14 +- lib/crc32.c | 11 +- mm/Makefile | 6 +- mm/memory.c | 247 ------------------------------ mm/mmu_gather.c | 261 ++++++++++++++++++++++++++++++++ virt/kvm/arm/arm.c | 4 +- 71 files changed, 1511 insertions(+), 591 deletions(-) create mode 100644 Documentation/arm64/hugetlbpage.txt delete mode 100644 arch/arm64/include/asm/compiler.h create mode 100644 arch/arm64/lib/crc32.S create mode 100644 mm/mmu_gather.c