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 -- Catalin