mbox series

[GIT,PULL] arm64 updated for 4.20

Message ID 20181019175952.GA57321@arrakis.emea.arm.com
State New
Headers show
Series [GIT,PULL] arm64 updated for 4.20 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux tags/arm64-upstream

Message

Catalin Marinas Oct. 19, 2018, 5:59 p.m. UTC
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