[GIT PULL] arm64 updates for 5.16

Will Deacon will at kernel.org
Mon Nov 1 04:35:49 PDT 2021


Hi Linus,

Please pull this batch of arm64 updates for 5.16. There's the usual
summary in the tag, but the highlights are support for the Armv8.6
timer extensions, KASAN support for asymmetric MTE, the ability to
kexec() with the MMU enabled and a second attempt at switching to the
generic pfn_valid() implementation.

Please note that the changes to the "arm_arch_timer" driver on which we
depend are shared with Daniel and should also come via the -tip tree.

Cheers,

Will

--->8

The following changes since commit 5816b3e6577eaa676ceb00a848f0fd65fe2adc29:

  Linux 5.15-rc3 (2021-09-26 14:08:19 -0700)

are available in the Git repository at:

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

for you to fetch changes up to e6359798f62da66a4a48061d2324a69ea59ff39b:

  Merge branch 'for-next/fixes' into for-next/core (2021-10-29 12:27:53 +0100)

----------------------------------------------------------------
arm64 updates for 5.16

- Support for the Arm8.6 timer extensions, including a self-synchronising
  view of the system registers to elide some expensive ISB instructions.

- Exception table cleanup and rework so that the fixup handlers appear
  correctly in backtraces.

- A handful of miscellaneous changes, the main one being selection of
  CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK.

- More mm and pgtable cleanups.

- KASAN support for "asymmetric" MTE, where tag faults are reported
  synchronously for loads (via an exception) and asynchronously for
  stores (via a register).

- Support for leaving the MMU enabled during kexec relocation, which
  significantly speeds up the operation.

- Minor improvements to our perf PMU drivers.

- Improvements to the compat vDSO build system, particularly when
  building with LLVM=1.

- Preparatory work for handling some Coresight TRBE tracing errata.

- Cleanup and refactoring of the SVE code to pave the way for SME
  support in future.

- Ensure SCS pages are unpoisoned immediately prior to freeing them
  when KASAN is enabled for the vmalloc area.

- Try moving to the generic pfn_valid() implementation again now that
  the DMA mapping issue from last time has been resolved.

- Numerous improvements and additions to our FPSIMD and SVE selftests.

----------------------------------------------------------------
Amit Daniel Kachhap (1):
      arm64/traps: Avoid unnecessary kernel/user pointer conversion

Anders Roxell (1):
      arm64: asm: setup.h: export common variables

Anshuman Khandual (2):
      arm64/mm: Add pud_sect_supported()
      arm64/mm: drop HAVE_ARCH_PFN_VALID

Jackie Liu (1):
      acpi/arm64: fix next_platform_timer() section mismatch error

John Garry (2):
      drivers/perf: thunderx2_pmu: Change data in size tx2_uncore_event_update()
      drivers/perf: Improve build test coverage

Marc Zyngier (16):
      clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses
      clocksource/drivers/arm_arch_timer: Drop CNT*_TVAL read accessors
      clocksource/drivers/arm_arch_timer: Extend write side of timer register accessors to u64
      clocksource/drivers/arm_arch_timer: Move system register timer programming over to CVAL
      clocksource/drivers/arm_arch_timer: Move drop _tval from erratum function names
      clocksource/drivers/arm_arch_timer: Fix MMIO base address vs callback ordering issue
      clocksource/drivers/arm_arch_timer: Move MMIO timer programming over to CVAL
      clocksource/drivers/arm_arch_timer: Advertise 56bit timer to the core code
      clocksource/drivers/arm_arch_timer: Work around broken CVAL implementations
      clocksource/drivers/arm_arch_timer: Remove any trace of the TVAL programming interface
      clocksource/drivers/arm_arch_timer: Drop unnecessary ISB on CVAL programming
      clocksource/drivers/arch_arm_timer: Move workaround synchronisation around
      arm64: Add a capability for FEAT_ECV
      arm64: Add CNT{P,V}CTSS_EL0 alternatives to cnt{p,v}ct_el0
      arm64: Add handling of CNTVCTSS traps
      arm64: Add HWCAP for self-synchronising virtual counter

Mark Brown (26):
      selftests: arm64: Use a define for the number of SVE ptrace tests to be run
      selftests: arm64: Don't log child creation as a test in SVE ptrace test
      selftests: arm64: Remove extraneous register setting code
      selftests: arm64: Document what the SVE ptrace test is doing
      selftests: arm64: Clarify output when verifying SVE register set
      selftests: arm64: Verify interoperation of SVE and FPSIMD register sets
      selftests: arm64: More comprehensively test the SVE ptrace interface
      selftests: arm64: Move FPSIMD in SVE ptrace test into a function
      selftests: arm64: Fix printf() format mismatch in vec-syscfg
      selftests: arm64: Remove bogus error check on writing to files
      selftests: arm64: Fix and enable test for setting current VL in vec-syscfg
      selftests: arm64: Verify that all possible vector lengths are handled
      selftests: arm64: Add coverage of ptrace flags for SVE VL inheritance
      arm64/fp: Reindent fpsimd_save()
      arm64/sve: Remove sve_load_from_fpsimd_state()
      arm64/sve: Make sve_state_size() static
      arm64/sve: Make access to FFR optional
      arm64/sve: Rename find_supported_vector_length()
      arm64/sve: Use accessor functions for vector lengths in thread_struct
      arm64/sve: Put system wide vector length information into structs
      arm64/sve: Explicitly load vector length when restoring SVE state
      arm64/sve: Track vector lengths for tasks in an array
      selftests: arm64: Factor out utility functions for assembly FP tests
      arm64/sve: Add stub for sve_max_virtualisable_vl()
      arm64/sve: Fix warnings when SVE is disabled
      arm64: Document boot requirements for FEAT_SME_FA64

Mark Rutland (13):
      arm64: lib: __arch_clear_user(): fold fixups into body
      arm64: lib: __arch_copy_from_user(): fold fixups into body
      arm64: lib: __arch_copy_to_user(): fold fixups into body
      arm64: kvm: use kvm_exception_table_entry
      arm64: factor out GPR numbering helpers
      arm64: gpr-num: support W registers
      arm64: extable: consolidate definitions
      arm64: extable: make fixup_exception() return bool
      arm64: extable: use `ex` for `exception_table_entry`
      arm64: extable: add `type` and `data` fields
      arm64: extable: add a dedicated uaccess handler
      arm64: extable: add load_unaligned_zeropad() handler
      arm64: vmlinux.lds.S: remove `.fixup` section

Mike Kravetz (1):
      arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE

Mike Rapoport (1):
      dma-mapping: remove bogus test for pfn_valid from dma_map_resource

Nick Desaulniers (4):
      arm64: vdso32: drop the test for dmb ishld
      arm64: vdso32: drop test for -march=armv8-a
      arm64: vdso32: suppress error message for 'make mrproper'
      arm64: vdso32: require CROSS_COMPILE_COMPAT for gcc+bfd

Nicolas Saenz Julienne (1):
      arm64: Select POSIX_CPU_TIMERS_TASK_WORK

Oliver Upton (1):
      clocksource/drivers/arm_arch_timer: Fix masking for high freq counters

Pasha Tatashin (15):
      arm64: kernel: add helper for booted at EL2 and not VHE
      arm64: trans_pgd: hibernate: Add trans_pgd_copy_el2_vectors
      arm64: hibernate: abstract ttrb0 setup function
      arm64: kexec: flush image and lists during kexec load time
      arm64: kexec: skip relocation code for inplace kexec
      arm64: kexec: Use dcache ops macros instead of open-coding
      arm64: kexec: pass kimage as the only argument to relocation function
      arm64: kexec: configure EL2 vectors for kexec
      arm64: kexec: relocate in EL1 mode
      arm64: kexec: use ld script for relocation function
      arm64: kexec: install a copy of the linear-map
      arm64: kexec: keep MMU enabled during kexec relocation
      arm64: kexec: remove the pre-kexec PoC maintenance
      arm64: kexec: remove cpu-reset.h
      arm64: trans_pgd: remove trans_pgd_map_page()

Peter Collingbourne (1):
      arm64: kasan: mte: move GCR_EL1 switch to task switch when KASAN disabled

Shaokun Zhang (1):
      drivers/perf: hisi: Fix PA PMU counter offset

Sudarshan Rajagopalan (1):
      arm64: mm: update max_pfn after memory hotplug

Sumit Garg (1):
      arm64: ftrace: use function_nocfi for _mcount as well

Suzuki K Poulose (4):
      arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
      arm64: errata: Add detection for TRBE overwrite in FILL mode
      arm64: errata: Add workaround for TSB flush failures
      arm64: errata: Add detection for TRBE write to out-of-range

Vincenzo Frascino (5):
      kasan: Remove duplicate of kasan_flag_async
      arm64: mte: Bitfield definitions for Asymm MTE
      arm64: mte: CPU feature detection for Asymm MTE
      arm64: mte: Add asymmetric mode support
      kasan: Extend KASAN mode kernel parameter

Will Deacon (16):
      arm64: mm: Drop pointless call to set_max_mapnr()
      Merge branch 'timers/drivers/armv8.6_arch_timer' of https://git.linaro.org/people/daniel.lezcano/linux into for-next/8.6-timers
      Merge branch 'for-next/8.6-timers' into for-next/core
      Merge branch 'for-next/extable' into for-next/core
      Merge branch 'for-next/kexec' into for-next/core
      Merge branch 'for-next/kselftest' into for-next/core
      Merge branch 'for-next/misc' into for-next/core
      Merge branch 'for-next/mm' into for-next/core
      Merge branch 'for-next/mte' into for-next/core
      Merge branch 'for-next/perf' into for-next/core
      Merge branch 'for-next/pfn-valid' into for-next/core
      Merge branch 'for-next/scs' into for-next/core
      Merge branch 'for-next/sve' into for-next/core
      Merge branch 'for-next/trbe-errata' into for-next/core
      Merge branch 'for-next/vdso' into for-next/core
      Merge branch 'for-next/fixes' into for-next/core

Yee Lee (1):
      scs: Release kasan vmalloc poison in scs_free process

 Documentation/arm64/booting.rst                   |  10 +
 Documentation/arm64/cpu-feature-registers.rst     |  12 +-
 Documentation/arm64/elf_hwcaps.rst                |   4 +
 Documentation/arm64/silicon-errata.rst            |  12 +
 Documentation/dev-tools/kasan.rst                 |   7 +-
 arch/arm/include/asm/arch_timer.h                 |  37 +-
 arch/arm64/Kconfig                                | 122 +++++-
 arch/arm64/include/asm/arch_timer.h               |  78 ++--
 arch/arm64/include/asm/asm-extable.h              |  95 ++++
 arch/arm64/include/asm/asm-uaccess.h              |   7 +-
 arch/arm64/include/asm/assembler.h                |  78 ++--
 arch/arm64/include/asm/barrier.h                  |  16 +-
 arch/arm64/include/asm/cputype.h                  |   4 +
 arch/arm64/include/asm/esr.h                      |   6 +
 arch/arm64/include/asm/extable.h                  |  23 +-
 arch/arm64/include/asm/fpsimd.h                   | 118 ++++-
 arch/arm64/include/asm/fpsimdmacros.h             |  21 +-
 arch/arm64/include/asm/ftrace.h                   |   2 +-
 arch/arm64/include/asm/futex.h                    |  25 +-
 arch/arm64/include/asm/gpr-num.h                  |  26 ++
 arch/arm64/include/asm/hwcap.h                    |   1 +
 arch/arm64/include/asm/kexec.h                    |  12 +
 arch/arm64/include/asm/kvm_asm.h                  |   7 +-
 arch/arm64/include/asm/memory.h                   |   1 +
 arch/arm64/include/asm/mmu_context.h              |  24 +
 arch/arm64/include/asm/mte-kasan.h                |   5 +
 arch/arm64/include/asm/mte.h                      |   8 +-
 arch/arm64/include/asm/page.h                     |   1 -
 arch/arm64/include/asm/pgtable.h                  |   5 +
 arch/arm64/include/asm/processor.h                |  49 ++-
 arch/arm64/include/asm/sections.h                 |   1 +
 arch/arm64/include/asm/setup.h                    |   6 +
 arch/arm64/include/asm/sysreg.h                   |  31 +-
 arch/arm64/include/asm/thread_info.h              |   2 +-
 arch/arm64/include/asm/trans_pgd.h                |  14 +-
 arch/arm64/include/asm/uaccess.h                  |  30 +-
 arch/arm64/include/asm/vdso/compat_barrier.h      |   7 -
 arch/arm64/include/asm/virt.h                     |   7 +
 arch/arm64/include/asm/vmalloc.h                  |   4 +-
 arch/arm64/include/asm/word-at-a-time.h           |  21 +-
 arch/arm64/include/uapi/asm/hwcap.h               |   1 +
 arch/arm64/kernel/armv8_deprecated.c              |  12 +-
 arch/arm64/kernel/asm-offsets.c                   |  11 +
 arch/arm64/kernel/cpu-reset.S                     |   7 +-
 arch/arm64/kernel/cpu-reset.h                     |  32 --
 arch/arm64/kernel/cpu_errata.c                    |  64 +++
 arch/arm64/kernel/cpufeature.c                    |  29 +-
 arch/arm64/kernel/cpuinfo.c                       |   1 +
 arch/arm64/kernel/entry-fpsimd.S                  |  34 +-
 arch/arm64/kernel/entry.S                         |  10 +-
 arch/arm64/kernel/fpsimd.c                        | 342 +++++++++------
 arch/arm64/kernel/hibernate-asm.S                 |  72 ---
 arch/arm64/kernel/hibernate.c                     |  49 +--
 arch/arm64/kernel/machine_kexec.c                 | 177 ++++----
 arch/arm64/kernel/mte.c                           |  67 ++-
 arch/arm64/kernel/ptrace.c                        |   6 +-
 arch/arm64/kernel/relocate_kernel.S               |  69 ++-
 arch/arm64/kernel/sdei.c                          |   2 +-
 arch/arm64/kernel/signal.c                        |   8 +-
 arch/arm64/kernel/traps.c                         |  24 +-
 arch/arm64/kernel/vdso32/Makefile                 |  36 +-
 arch/arm64/kernel/vmlinux.lds.S                   |  22 +-
 arch/arm64/kvm/hyp/fpsimd.S                       |   6 +-
 arch/arm64/kvm/hyp/include/hyp/switch.h           |  10 +-
 arch/arm64/kvm/reset.c                            |   6 +-
 arch/arm64/lib/clear_user.S                       |  10 +-
 arch/arm64/lib/copy_from_user.S                   |   8 +-
 arch/arm64/lib/copy_to_user.S                     |   8 +-
 arch/arm64/mm/Makefile                            |   1 +
 arch/arm64/mm/extable.c                           |  85 +++-
 arch/arm64/mm/hugetlbpage.c                       |  27 +-
 arch/arm64/mm/init.c                              |  39 --
 arch/arm64/mm/mmu.c                               |   5 +
 arch/arm64/mm/trans_pgd-asm.S                     |  65 +++
 arch/arm64/mm/trans_pgd.c                         |  84 ++--
 arch/arm64/net/bpf_jit_comp.c                     |   9 +-
 arch/arm64/tools/cpucaps                          |   5 +
 drivers/clocksource/arm_arch_timer.c              | 243 ++++++----
 drivers/perf/Kconfig                              |  12 +-
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c       |   2 +-
 drivers/perf/thunderx2_pmu.c                      |   2 +-
 include/clocksource/arm_arch_timer.h              |   2 +-
 include/linux/kasan.h                             |   9 +-
 kernel/dma/mapping.c                              |   4 -
 kernel/scs.c                                      |   1 +
 lib/test_kasan.c                                  |   2 +-
 mm/kasan/hw_tags.c                                |  29 +-
 mm/kasan/kasan.h                                  |  32 +-
 mm/kasan/report.c                                 |   2 +-
 scripts/sorttable.c                               |  30 ++
 tools/testing/selftests/arm64/fp/Makefile         |   6 +-
 tools/testing/selftests/arm64/fp/TODO             |   9 +-
 tools/testing/selftests/arm64/fp/asm-utils.S      | 172 ++++++++
 tools/testing/selftests/arm64/fp/assembler.h      |  11 +
 tools/testing/selftests/arm64/fp/fpsimd-test.S    | 164 -------
 tools/testing/selftests/arm64/fp/sve-ptrace-asm.S |  33 --
 tools/testing/selftests/arm64/fp/sve-ptrace.c     | 511 ++++++++++++++++------
 tools/testing/selftests/arm64/fp/sve-test.S       | 163 -------
 tools/testing/selftests/arm64/fp/vec-syscfg.c     |  95 +++-
 99 files changed, 2389 insertions(+), 1527 deletions(-)
 create mode 100644 arch/arm64/include/asm/asm-extable.h
 create mode 100644 arch/arm64/include/asm/gpr-num.h
 delete mode 100644 arch/arm64/kernel/cpu-reset.h
 create mode 100644 arch/arm64/mm/trans_pgd-asm.S
 create mode 100644 tools/testing/selftests/arm64/fp/asm-utils.S
 delete mode 100644 tools/testing/selftests/arm64/fp/sve-ptrace-asm.S



More information about the linux-arm-kernel mailing list