mbox series

[GIT,PULL] arm64 updates for 5.18

Message ID 20220314220726.GA5585@willie-the-truck
State New
Headers show
Series [GIT,PULL] arm64 updates for 5.18 | expand

Pull-request

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

Message

Will Deacon March 14, 2022, 10:07 p.m. UTC
Hi Linus,

I'm off for the rest of the week, so here is an early pull containing
the arm64 changes for 5.18. Summary in the tag, but there are some other
points worthy of note:

  - I had to merge in the spectre-bhb mitigations as they conflicted
    with what was already queued. These are the same commits (SHAs) as
    what you took upstream, so the pull request has ended up using that
    as a base.

  - We have a few shared branches. In particular:

      * Instruction encoder updates are shared with eBPF (Daniel
        Borkmann)

      * Symbol aliasing cleanups are shared with -tip (Peter Z)

      * Apple interrupt controller updates are shared with irqchip (Marc
        Zyngier)

    and these explain most of the changes straying outside of the usual
    directories.

  - The MTE coredump support conflicted pretty badly with the maple tree
    VMA list conversion from Liam, so we've got a funny conditional
    definition of VMA_ITERATOR() to make this easy to deal with. It's
    spent a while in -next and we'll drop it at -rc1.

Thanks, and please pull.

Will

--->8

The following changes since commit 52c9f93a9c482251cb0d224faa602ba26d462be8:

  arm64: Do not include __READ_ONCE() block in assembly files (2022-03-09 21:56:50 +0000)

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 641d804157294d9b19bdfe6a2cdbd5d25939a048:

  Merge branch 'for-next/spectre-bhb' into for-next/core (2022-03-14 19:08:31 +0000)

----------------------------------------------------------------
arm64 updates for 5.18

- Support for including MTE tags in ELF coredumps

- Instruction encoder updates, including fixes to 64-bit immediate
  generation and support for the LSE atomic instructions

- Improvements to kselftests for MTE and fpsimd

- Symbol aliasing and linker script cleanups

- Reduce instruction cache maintenance performed for user mappings
  created using contiguous PTEs

- Support for the new "asymmetric" MTE mode, where stores are checked
  asynchronously but loads are checked synchronously

- Support for the latest pointer authentication algorithm ("QARMA3")

- Support for the DDR PMU present in the Marvell CN10K platform

- Support for the CPU PMU present in the Apple M1 platform

- Use the RNDR instruction for arch_get_random_{int,long}()

- Update our copy of the Arm optimised string routines for str{n}cmp()

- Fix signal frame generation for CPUs which have foolishly elected to
  avoid building in support for the fpsimd instructions

- Workaround for Marvell GICv3 erratum #38545

- Clarification to our Documentation (booting reqs. and MTE prctl())

- Miscellanous cleanups and minor fixes

----------------------------------------------------------------
Andre Przywara (1):
      arm64: booting.rst: Clarify on requiring non-secure EL2

Anshuman Khandual (3):
      arm64/mm: Consolidate TCR_EL1 fields
      arm64/hugetlb: Define __hugetlb_valid_size()
      arm64/mm: Drop use_1G_block()

Ard Biesheuvel (1):
      arm64: random: implement arch_get_random_int/_long based on RNDR

Bharat Bhushan (4):
      dt-bindings: perf: marvell: cn10k ddr performance monitor
      perf/marvell: CN10k DDR performance monitor support
      perf/marvell: cn10k DDR perfmon event overflow handling
      perf/marvell: cn10k DDR perf event core ownership

Catalin Marinas (5):
      elfcore: Replace CONFIG_{IA64, UML} checks with a new option
      elf: Introduce the ARM MTE ELF segment type
      arm64: mte: Define the number of bytes for storing the tags in a page
      arm64: mte: Dump the MTE tags in the core file
      arm64: mte: Document the core dump file format

David Engraf (1):
      arm64: signal: nofpsimd: Do not allocate fp/simd context when not available

Evgenii Stepanov (1):
      docs: sysfs-devices-system-cpu: document "asymm" value for mte_tcf_preferred

Fangrui Song (1):
      arm64: module: remove (NOLOAD) from linker script

Geert Uytterhoeven (1):
      perf: MARVELL_CN10K_TAD_PMU should depend on ARCH_THUNDER

He Ying (1):
      arm64: entry: Save some nops when CONFIG_ARM64_PSEUDO_NMI is not set

Hou Tao (2):
      arm64: move AARCH64_BREAK_FAULT into insn-def.h
      arm64: insn: add encoders for atomic operations

Huang Shijie (1):
      arm64: crash_core: Export MODULES, VMALLOC, and VMEMMAP ranges

James Morse (1):
      arm64: insn: Generate 64 bit mask immediates correctly

Jianyong Wu (1):
      arm64/mm: avoid fixmap race condition when create pud mapping

Joey Gouly (10):
      kselftest/arm64: mte: user_mem: introduce tag_offset and tag_len
      kselftest/arm64: mte: user_mem: rework error handling
      kselftest/arm64: mte: user_mem: check different offsets and sizes
      kselftest/arm64: mte: user_mem: add test type enum
      kselftest/arm64: mte: user_mem: add more test types
      kselftest/arm64: mte: user_mem: test a wider range of values
      arm64: lib: Import latest version of Arm Optimized Routines' strcmp
      arm64: lib: Import latest version of Arm Optimized Routines' strncmp
      Revert "arm64: Mitigate MTE issues with str{n}cmp()"
      kasan: fix a missing header include of static_keys.h

Lad Prabhakar (1):
      perf/arm-ccn: Use platform_get_irq() to get the interrupt

Liam Howlett (1):
      arm64: Change elfcore for_each_mte_vma() to use VMA iterator

Linu Cherian (1):
      irqchip/gic-v3: Workaround Marvell erratum 38545 when reading IAR

Marc Zyngier (11):
      dt-bindings: arm-pmu: Document Apple PMU compatible strings
      dt-bindings: apple,aic: Add CPU PMU per-cpu pseudo-interrupts
      dt-bindings: apple,aic: Add affinity description for per-cpu pseudo-interrupts
      irqchip/apple-aic: Parse FIQ affinities from device-tree
      irqchip/apple-aic: Wire PMU interrupts
      arm64: dts: apple: Add t8103 PMU interrupt affinities
      arm64: dts: apple: Add t8303 PMU nodes
      irqchip/apple-aic: Move PMU-specific registers to their own include file
      drivers/perf: arm_pmu: Handle 47 bit counters
      drivers/perf: Add Apple icestorm/firestorm CPU PMU driver
      arm64: Add cavium_erratum_23154_cpus missing sentinel

Mark Brown (15):
      kselftest/arm64: Remove local ARRAY_SIZE() definitions
      kselftest/arm64: Remove local definitions of MTE prctls
      arm64/mte: Clarify mode reported by PR_GET_TAGGED_ADDR_CTRL
      arm64: Define CPACR_EL1_FPEN similarly to other floating point controls
      arm64: Always use individual bits in CPACR floating point enables
      arm64: cpufeature: Always specify and use a field width for capabilities
      kselftest/arm64: signal: Allow tests to be incompatible with features
      arm64/mte: Document ABI for asymmetric mode
      arm64/mte: Add a little bit of documentation for mte_update_sctlr_user()
      arm64/mte: Add hwcap for asymmetric mode
      arm64/mte: Add userspace interface for enabling asymmetric mode
      arm64: cpufeature: Add missing .field_width for GIC system registers
      arm64: cpufeature: Warn if we attempt to read a zero width field
      kselftest/arm64: Log the PIDs of the parent and child in sve-ptrace
      arm64/mte: Remove asymmetric mode from the prctl() interface

Mark Rutland (6):
      arm64: atomics: remove redundant static branch
      linkage: add SYM_FUNC_ALIAS{,_LOCAL,_WEAK}()
      arm64: clean up symbol aliasing
      x86: clean up symbol aliasing
      linkage: remove SYM_FUNC_{START,END}_ALIAS()
      arm64: prevent instrumentation of bp hardening callbacks

Masahiro Yamada (1):
      arm64: clean up tools Makefile

Muchun Song (1):
      arm64: avoid flushing icache multiple times on contiguous HugeTLB

Peter Collingbourne (2):
      kasan: split kasan_*enabled() functions into a separate header
      arm64: mte: avoid clearing PSTATE.TCO on entry unless necessary

Rafael J. Wysocki (1):
      perf: Replace acpi_bus_get_device()

Robin Murphy (3):
      perf/arm-cmn: Make arm_cmn_debugfs static
      perf/arm-cmn: Hide XP PUB events for CMN-600
      perf/arm-cmn: Update watchpoint format

Sagar Patel (1):
      arm64: drop unused includes of <linux/personality.h>

Shaokun Zhang (2):
      arm64: perf: Expose some Armv9 common events under sysfs
      arm64: perf: Consistently make all event numbers as 16-bits

Vijay Balakrishna (1):
      arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory zones

Vladimir Murzin (4):
      arm64: cpufeature: Account min_field_value when cheking secondaries for PAuth
      arm64: cpufeature: Mark existing PAuth architected algorithm as QARMA5
      arm64: Add support of PAuth QARMA3 architected algorithm
      arm64: cpufeature: Remove cpu_has_fwb() check

Will Deacon (21):
      perf/marvell_cn10k: Fix unused variable warning when W=1 and CONFIG_OF=n
      Merge branch 'irq/aic-pmu' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into for-next/perf-m1
      Merge branch 'for-next/perf-m1' into for-next/perf
      Documentation: vmcoreinfo: Fix htmldocs warning
      arm64: mm: Drop 'const' from conditional arm64_dma_phys_limit definition
      perf/marvell: Fix !CONFIG_OF build for CN10K DDR PMU driver
      Merge branch 'for-next/coredump' into for-next/core
      Merge branch 'for-next/docs' into for-next/core
      Merge branch 'for-next/errata' into for-next/core
      Merge branch 'for-next/insn' into for-next/core
      Merge branch 'for-next/kselftest' into for-next/core
      Merge branch 'for-next/linkage' 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/pauth' into for-next/core
      Merge branch 'for-next/perf' into for-next/core
      Merge branch 'for-next/rng' into for-next/core
      Merge branch 'for-next/strings' into for-next/core
      Merge branch 'for-next/fpsimd' into for-next/core
      Merge branch 'for-next/spectre-bhb' into for-next/core

Yury Norov (1):
      perf: replace bitmap_weight with bitmap_empty where appropriate

 Documentation/ABI/testing/sysfs-devices-system-cpu |   1 +
 Documentation/admin-guide/kdump/vmcoreinfo.rst     |   8 +
 Documentation/arm64/booting.rst                    |  10 +-
 Documentation/arm64/elf_hwcaps.rst                 |   5 +
 Documentation/arm64/memory-tagging-extension.rst   |  54 +-
 Documentation/arm64/silicon-errata.rst             |   2 +-
 Documentation/asm-annotations.rst                  |  11 +-
 Documentation/devicetree/bindings/arm/pmu.yaml     |   2 +
 .../bindings/interrupt-controller/apple,aic.yaml   |  31 +
 .../bindings/perf/marvell-cn10k-ddr.yaml           |  37 +
 arch/arm64/Kconfig                                 |   9 +-
 arch/arm64/boot/dts/apple/t8103.dtsi               |  24 +
 arch/arm64/include/asm/apple_m1_pmu.h              |  64 ++
 arch/arm64/include/asm/arch_gicv3.h                |  23 +-
 arch/arm64/include/asm/archrandom.h                |  45 +-
 arch/arm64/include/asm/asm_pointer_auth.h          |   3 +
 arch/arm64/include/asm/assembler.h                 |   5 -
 arch/arm64/include/asm/cpufeature.h                |   4 +
 arch/arm64/include/asm/cputype.h                   |  13 +
 arch/arm64/include/asm/debug-monitors.h            |  12 -
 arch/arm64/include/asm/hwcap.h                     |   1 +
 arch/arm64/include/asm/insn-def.h                  |  14 +
 arch/arm64/include/asm/insn.h                      |  80 ++-
 arch/arm64/include/asm/kvm_arm.h                   |   4 +-
 arch/arm64/include/asm/kvm_hyp.h                   |   1 +
 arch/arm64/include/asm/linkage.h                   |  24 -
 arch/arm64/include/asm/lse.h                       |   6 +-
 arch/arm64/include/asm/module.lds.h                |   6 +-
 arch/arm64/include/asm/mte-def.h                   |   1 +
 arch/arm64/include/asm/mte.h                       |  22 +
 arch/arm64/include/asm/perf_event.h                | 312 +++++----
 arch/arm64/include/asm/pgtable-hwdef.h             |   2 +
 arch/arm64/include/asm/processor.h                 |   1 +
 arch/arm64/include/asm/spectre.h                   |   3 +-
 arch/arm64/include/asm/string.h                    |   2 -
 arch/arm64/include/asm/sysreg.h                    |  20 +-
 arch/arm64/include/uapi/asm/hwcap.h                |   1 +
 arch/arm64/kernel/Makefile                         |   1 +
 arch/arm64/kernel/cpu_errata.c                     |  21 +-
 arch/arm64/kernel/cpufeature.c                     | 239 ++++---
 arch/arm64/kernel/cpuinfo.c                        |   1 +
 arch/arm64/kernel/crash_core.c                     |   6 +
 arch/arm64/kernel/elfcore.c                        | 134 ++++
 arch/arm64/kernel/entry-common.c                   |   3 +
 arch/arm64/kernel/entry.S                          |   9 +-
 arch/arm64/kernel/idreg-override.c                 |  16 +-
 arch/arm64/kernel/mte.c                            |  36 +-
 arch/arm64/kernel/perf_event.c                     |  10 +
 arch/arm64/kernel/process.c                        |   3 +-
 arch/arm64/kernel/proton-pack.c                    |   9 +-
 arch/arm64/kernel/signal.c                         |  11 +-
 arch/arm64/kernel/sys_compat.c                     |   1 -
 arch/arm64/kernel/traps.c                          |   1 -
 arch/arm64/kvm/arm.c                               |   1 +
 arch/arm64/kvm/hyp/include/hyp/switch.h            |   4 +-
 arch/arm64/kvm/hyp/include/nvhe/fixed_config.h     |   5 +
 arch/arm64/kvm/hyp/nvhe/cache.S                    |   5 +-
 arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |  14 +
 arch/arm64/kvm/hyp/vhe/switch.c                    |   6 +-
 arch/arm64/kvm/sys_regs.c                          |   5 +
 arch/arm64/lib/clear_page.S                        |   5 +-
 arch/arm64/lib/copy_page.S                         |   5 +-
 arch/arm64/lib/insn.c                              | 187 ++++-
 arch/arm64/lib/memchr.S                            |   5 +-
 arch/arm64/lib/memcmp.S                            |   6 +-
 arch/arm64/lib/memcpy.S                            |  21 +-
 arch/arm64/lib/memset.S                            |  12 +-
 arch/arm64/lib/mte.S                               |   4 +-
 arch/arm64/lib/strchr.S                            |   6 +-
 arch/arm64/lib/strcmp.S                            | 246 +++----
 arch/arm64/lib/strlen.S                            |   6 +-
 arch/arm64/lib/strncmp.S                           | 241 ++++---
 arch/arm64/lib/strnlen.S                           |   6 +-
 arch/arm64/lib/strrchr.S                           |   5 +-
 arch/arm64/mm/cache.S                              |  35 +-
 arch/arm64/mm/flush.c                              |   7 +
 arch/arm64/mm/hugetlbpage.c                        |  38 +-
 arch/arm64/mm/init.c                               |  36 +-
 arch/arm64/mm/mmu.c                                |  56 +-
 arch/arm64/mm/mteswap.c                            |   2 +-
 arch/arm64/mm/proc.S                               |   2 +-
 arch/arm64/net/bpf_jit.h                           |  11 +-
 arch/arm64/tools/Makefile                          |  10 +-
 arch/arm64/tools/cpucaps                           |   6 +-
 arch/ia64/Kconfig                                  |   1 +
 arch/x86/boot/compressed/head_32.S                 |   3 +-
 arch/x86/boot/compressed/head_64.S                 |   3 +-
 arch/x86/crypto/aesni-intel_asm.S                  |   4 +-
 arch/x86/lib/memcpy_64.S                           |  10 +-
 arch/x86/lib/memmove_64.S                          |   4 +-
 arch/x86/lib/memset_64.S                           |   6 +-
 arch/x86/um/Kconfig                                |   1 +
 drivers/irqchip/irq-apple-aic.c                    |  94 ++-
 drivers/perf/Kconfig                               |  16 +-
 drivers/perf/Makefile                              |   2 +
 drivers/perf/apple_m1_cpu_pmu.c                    | 584 ++++++++++++++++
 drivers/perf/arm-cci.c                             |   2 +-
 drivers/perf/arm-ccn.c                             |  10 +-
 drivers/perf/arm-cmn.c                             |  23 +-
 drivers/perf/arm_pmu.c                             |   6 +-
 drivers/perf/hisilicon/hisi_uncore_pmu.c           |   2 +-
 drivers/perf/marvell_cn10k_ddr_pmu.c               | 758 +++++++++++++++++++++
 drivers/perf/marvell_cn10k_tad_pmu.c               |   2 +
 drivers/perf/thunderx2_pmu.c                       |   6 +-
 drivers/perf/xgene_pmu.c                           |   8 +-
 fs/Kconfig.binfmt                                  |   3 +
 .../dt-bindings/interrupt-controller/apple-aic.h   |   2 +
 include/linux/cpuhotplug.h                         |   1 +
 include/linux/elfcore.h                            |   4 +-
 include/linux/kasan-enabled.h                      |  35 +
 include/linux/kasan.h                              |  23 +-
 include/linux/linkage.h                            |  67 +-
 include/linux/perf/arm_pmu.h                       |   2 +
 include/uapi/linux/elf.h                           |   3 +
 tools/arch/x86/lib/memcpy_64.S                     |  10 +-
 tools/arch/x86/lib/memset_64.S                     |   6 +-
 tools/perf/util/include/linux/linkage.h            |  52 +-
 tools/testing/selftests/arm64/abi/syscall-abi.c    |   1 -
 tools/testing/selftests/arm64/fp/sve-ptrace.c      |   4 +-
 .../selftests/arm64/mte/check_gcr_el1_cswitch.c    |  11 -
 tools/testing/selftests/arm64/mte/check_user_mem.c | 193 +++++-
 .../testing/selftests/arm64/signal/test_signals.h  |   1 +
 .../selftests/arm64/signal/test_signals_utils.c    |  34 +-
 .../selftests/arm64/signal/test_signals_utils.h    |   2 +
 124 files changed, 3470 insertions(+), 891 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/perf/marvell-cn10k-ddr.yaml
 create mode 100644 arch/arm64/include/asm/apple_m1_pmu.h
 create mode 100644 arch/arm64/kernel/elfcore.c
 create mode 100644 drivers/perf/apple_m1_cpu_pmu.c
 create mode 100644 drivers/perf/marvell_cn10k_ddr_pmu.c
 create mode 100644 include/linux/kasan-enabled.h

Comments

Linus Torvalds March 21, 2022, 5:51 p.m. UTC | #1
On Mon, Mar 14, 2022 at 3:07 PM Will Deacon <will@kernel.org> wrote:
>
> I'm off for the rest of the week, so here is an early pull containing
> the arm64 changes for 5.18. Summary in the tag, but there are some other
> points worthy of note:

Thanks, I just wanted to say that I appreciate that you explain the
weirder parts of your pull request. Very thoughtful,

             Linus
pr-tracker-bot@kernel.org March 21, 2022, 7:18 p.m. UTC | #2
The pull request you sent on Mon, 14 Mar 2022 22:07:27 +0000:

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

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/356a1adca8774df407e8b6d3929e36da90679c0d

Thank you!