[GIT PULL] arm64 updates for 5.12

Will Deacon will at kernel.org
Mon Feb 15 09:24:12 EST 2021


Hi Linus,

Please pull these arm64 updates for 5.12. There's a summary in the tag
and we've only had a couple of trivial conflicts reported in -next, so
it should be plain sailing.

In terms of the diffstat, a couple of things stand out:

  - The faultaround patches to initialise prefaulted PTEs as 'old'
    bring in a bunch of changes to mm/, largely due to the rework from
    Kirill.

  - We have a change to drivers/char/random.c to avoid calling
    arch_get_random_seed_long() from add_interrupt_randomness(). We
    didn't have any luck getting a response from Ted on this [1], but
    since we need this change in order to enable the firmware-backed
    TRNG service, I've ended up including it here.

Cheers,

Will

[1] https://lore.kernel.org/linux-arm-kernel/CAMj1kXH2N_e722TiSU6_uUs_arjkBipwUnfD8=xj1etKE11DRQ@mail.gmail.com/

--->8

The following changes since commit 19c329f6808995b142b3966301f217c831e7cf31:

  Linux 5.11-rc4 (2021-01-17 16:37:05 -0800)

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 1ffa9763828cf73a4d4eaa04c29a4a89fb0708c7:

  Merge branch 'for-next/vdso' into for-next/core (2021-02-12 15:17:42 +0000)

----------------------------------------------------------------
arm64 updates for 5.12

 - vDSO build improvements including support for building with BSD.

 - Cleanup to the AMU support code and initialisation rework to support
   cpufreq drivers built as modules.

 - Removal of synthetic frame record from exception stack when entering
   the kernel from EL0.

 - Add support for the TRNG firmware call introduced by Arm spec
   DEN0098.

 - Cleanup and refactoring across the board.

 - Avoid calling arch_get_random_seed_long() from
   add_interrupt_randomness()

 - Perf and PMU updates including support for Cortex-A78 and the v8.3
   SPE extensions.

 - Significant steps along the road to leaving the MMU enabled during
   kexec relocation.

 - Faultaround changes to initialise prefaulted PTEs as 'old' when
   hardware access-flag updates are supported, which drastically
   improves vmscan performance.

 - CPU errata updates for Cortex-A76 (#1463225) and Cortex-A55
   (#1024718)

 - Preparatory work for yielding the vector unit at a finer granularity
   in the crypto code, which in turn will one day allow us to defer
   softirq processing when it is in use.

 - Support for overriding CPU ID register fields on the command-line.

----------------------------------------------------------------
Andre Przywara (2):
      firmware: smccc: Introduce SMCCC TRNG framework
      arm64: Add support for SMCCC TRNG entropy source

Anshuman Khandual (1):
      arm64/mm: Add warning for outside range requests in vmemmap_populate()

Ard Biesheuvel (3):
      firmware: smccc: Add SMCCC TRNG function call IDs
      random: avoid arch_get_random_seed_long() when collecting IRQ randomness
      arm64: assembler: add cond_yield macro

Geert Uytterhoeven (1):
      mm/nommu: Fix return type of filemap_map_pages()

Hailong Liu (1):
      arm64/ptdump:display the Linear Mapping start marker

James Morse (2):
      arm64: mm: Always update TCR_EL1 from __cpu_set_tcr_t0sz()
      arm64: trans_pgd: hibernate: idmap the single page that holds the copy page routines

Joey Gouly (2):
      arm64: vmlinux.ld.S: add assertion for reserved_pg_dir offset
      arm64: vmlinux.ld.S: add assertion for tramp_pg_dir offset

John Millikin (1):
      arm64: Support running gen_vdso_offsets.sh with BSD userland.

Keno Fischer (1):
      arm64: ptrace: Fix missing return in hw breakpoint code

Kirill A. Shutemov (1):
      mm: Cleanup faultaround and finish_fault() codepaths

Marc Zyngier (22):
      arm64: Drop workaround for broken 'S' constraint with GCC 4.9
      arm64: Fix labels in el2_setup macros
      arm64: Fix outdated TCR setup comment
      arm64: Turn the MMU-on sequence into a macro
      arm64: Provide an 'upgrade to VHE' stub hypercall
      arm64: Initialise as nVHE before switching to VHE
      arm64: Drop early setting of MDSCR_EL2.TPMS
      arm64: Move VHE-specific SPE setup to mutate_to_vhe()
      arm64: Simplify init_el2_state to be non-VHE only
      arm64: Move SCTLR_EL1 initialisation to EL-agnostic code
      arm64: cpufeature: Add global feature override facility
      arm64: cpufeature: Use IDreg override in __read_sysreg_by_encoding()
      arm64: Extract early FDT mapping from kaslr_early_init()
      arm64: cpufeature: Add an early command-line cpufeature override facility
      arm64: Allow ID_AA64MMFR1_EL1.VH to be overridden from the command line
      arm64: Honor VHE being disabled from the command-line
      arm64: Add an aliasing facility for the idreg override
      arm64: Make kvm-arm.mode={nvhe, protected} an alias of id_aa64mmfr1.vh=0
      KVM: arm64: Document HVC_VHE_RESTART stub hypercall
      arm64: Move "nokaslr" over to the early cpufeature infrastructure
      arm64: cpufeatures: Allow disabling of BTI from the command-line
      arm64: cpufeatures: Allow disabling of Pointer Auth from the command-line

Mark Rutland (2):
      arm64: remove EL0 exception frame record
      arm64: entry: consolidate Cortex-A76 erratum 1463225 workaround

Masahiro Yamada (1):
      arm64: do not descend to vdso directories twice

Miaohe Lin (1):
      mm/arm64: Correct obsolete comment in do_page_fault()

Nathan Chancellor (1):
      arm64: Make CPU_BIG_ENDIAN depend on ld.bfd or ld.lld 13.0.0+

Pavel Tatashin (11):
      arm64: kexec: make dtb_mem always enabled
      arm64: hibernate: variable pudp is used instead of pd4dp
      arm64: hibernate: move page handling function to new trans_pgd.c
      arm64: trans_pgd: make trans_pgd_map_page generic
      arm64: trans_pgd: pass allocator trans_pgd_create_copy
      arm64: trans_pgd: pass NULL instead of init_mm to *_populate functions
      arm64: kexec: move relocation function setup
      arm64: kexec: call kexec_image_info only once
      arm64: kexec: arm64_relocate_new_kernel clean-ups and optimizations
      arm64: kexec: arm64_relocate_new_kernel don't use x0 as temp
      arm64: hibernate: add __force attribute to gfp_t casting

Qi Liu (2):
      drivers/perf: Prevent forced unbinding of ARM_DMC620_PMU drivers
      drivers/perf: Replace spin_lock_irqsave to spin_lock

Quentin Perret (1):
      KVM: arm64: Move __hyp_set_vectors out of .hyp.text

Rikard Falkeborn (5):
      perf: qcom: Constify static struct attribute_group
      perf/imx_ddr: Constify static struct attribute_group
      perf: hisi: Constify static struct attribute_group
      perf: Constify static struct attribute_group
      arm64: perf: Constify static attribute_group structs

Robin Murphy (2):
      perf/arm-cmn: Fix PMU instance naming
      perf/arm-cmn: Move IRQs when migrating context

Seiya Wang (2):
      arm64: perf: add support for Cortex-A78
      dt-bindings: arm: add Cortex-A78 binding

Shaokun Zhang (2):
      arm64: mm: Remove unused header file
      arm64: cacheflush: Remove stale comment

Srinivas Ramana (1):
      arm64: Defer enabling pointer authentication on boot core

Sudarshan Rajagopalan (1):
      arm64/sparsemem: reduce SECTION_SIZE_BITS

Suzuki K Poulose (1):
      arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55

Viresh Kumar (3):
      arm64: topology: Avoid the have_policy check
      arm64: topology: Reorder init_amu_fie() a bit
      arm64: topology: Make AMUs work with modular cpufreq drivers

Wei Li (1):
      drivers/perf: Add support for ARMv8.3-SPE

Will Deacon (23):
      mm: Allow architectures to request 'old' entries when prefaulting
      arm64: mm: Implement arch_wants_old_prefaulted_pte()
      mm: Move immutable fields of 'struct vm_fault' into anonymous struct
      mm: Pass 'address' to map to do_set_pte() and drop FAULT_FLAG_PREFAULT
      mm: Avoid modifying vmf.address in __collapse_huge_page_swapin()
      mm: Use static initialisers for immutable fields of 'struct vm_fault'
      mm: Mark anonymous struct field of 'struct vm_fault' as 'const'
      arm64: Include linux/io.h in mm/mmap.c
      mm: filemap: Fix microblaze build failure with 'mmu_defconfig'
      Merge branch 'for-next/cosmetic' into for-next/core
      Merge branch 'for-next/cpufeature' into for-next/core
      Merge branch 'for-next/crypto' into for-next/core
      Merge branch 'for-next/errata' into for-next/core
      Merge branch 'for-next/faultaround' into for-next/core
      Merge branch 'for-next/kexec' into for-next/core
      Merge branch 'for-next/misc' into for-next/core
      Merge branch 'for-next/perf' into for-next/core
      Merge branch 'for-next/random' into for-next/core
      Merge branch 'for-next/rng' into for-next/core
      Merge branch 'for-next/selftests' into for-next/core
      Merge branch 'for-next/stacktrace' into for-next/core
      Merge branch 'for-next/topology' into for-next/core
      Merge branch 'for-next/vdso' into for-next/core

YANG LI (1):
      arm64: mte: style: Simplify bool comparison

Zhiyuan Dai (1):
      arm64: improve whitespace

 Documentation/admin-guide/kernel-parameters.txt    |   9 +
 Documentation/admin-guide/perf/arm-cmn.rst         |   2 +-
 Documentation/devicetree/bindings/arm/pmu.yaml     |   1 +
 Documentation/virt/kvm/arm/hyp-abi.rst             |   9 +
 arch/arm/include/asm/archrandom.h                  |  10 +
 arch/arm64/Kconfig                                 |  11 +-
 arch/arm64/Makefile                                |  10 +-
 arch/arm64/include/asm/archrandom.h                |  82 +++++-
 arch/arm64/include/asm/asm-uaccess.h               |   4 +-
 arch/arm64/include/asm/assembler.h                 |  33 +++
 arch/arm64/include/asm/cacheflush.h                |   5 -
 arch/arm64/include/asm/cpufeature.h                |  11 +
 arch/arm64/include/asm/el2_setup.h                 |  60 ++--
 arch/arm64/include/asm/kexec.h                     |   5 +-
 arch/arm64/include/asm/kvm_asm.h                   |   8 +-
 arch/arm64/include/asm/memory.h                    |  12 +
 arch/arm64/include/asm/mmu_context.h               |   7 +-
 arch/arm64/include/asm/pgtable.h                   |  12 +-
 arch/arm64/include/asm/pointer_auth.h              |  10 +
 arch/arm64/include/asm/setup.h                     |  11 +
 arch/arm64/include/asm/sparsemem.h                 |  23 +-
 arch/arm64/include/asm/stackprotector.h            |   1 +
 arch/arm64/include/asm/sysreg.h                    |   9 +-
 arch/arm64/include/asm/trans_pgd.h                 |  39 +++
 arch/arm64/include/asm/uaccess.h                   |   2 +-
 arch/arm64/include/asm/virt.h                      |   7 +-
 arch/arm64/kernel/Makefile                         |   7 +-
 arch/arm64/kernel/alternative.c                    |   2 +-
 arch/arm64/kernel/asm-offsets.c                    |   3 +
 arch/arm64/kernel/cpu_errata.c                     |   2 -
 arch/arm64/kernel/cpufeature.c                     |  75 ++++-
 arch/arm64/kernel/entry-common.c                   |  54 +++-
 arch/arm64/kernel/entry.S                          |  14 +-
 arch/arm64/kernel/head.S                           |  75 +----
 arch/arm64/kernel/hibernate.c                      | 271 ++---------------
 arch/arm64/kernel/hyp-stub.S                       | 115 +++++++-
 arch/arm64/kernel/idreg-override.c                 | 216 ++++++++++++++
 arch/arm64/kernel/kaslr.c                          |  43 +--
 arch/arm64/kernel/machine_kexec.c                  |  57 ++--
 arch/arm64/kernel/module-plts.c                    |   2 +-
 arch/arm64/kernel/perf_event.c                     |  15 +-
 arch/arm64/kernel/process.c                        |   4 +-
 arch/arm64/kernel/ptrace.c                         |   1 +
 arch/arm64/kernel/relocate_kernel.S                |  48 +--
 arch/arm64/kernel/setup.c                          |  15 +
 arch/arm64/kernel/sleep.S                          |   1 +
 arch/arm64/kernel/stacktrace.c                     |  13 +-
 arch/arm64/kernel/syscall.c                        |  30 --
 arch/arm64/kernel/topology.c                       | 115 ++++----
 arch/arm64/kernel/traps.c                          |   2 +-
 arch/arm64/kernel/{vdso/vdso.S => vdso-wrap.S}     |   0
 arch/arm64/kernel/vdso/Makefile                    |   1 -
 arch/arm64/kernel/vdso/gen_vdso_offsets.sh         |   2 +-
 arch/arm64/kernel/{vdso32/vdso.S => vdso32-wrap.S} |   0
 arch/arm64/kernel/vdso32/Makefile                  |   1 -
 arch/arm64/kernel/vmlinux.lds.S                    |   8 +
 arch/arm64/kvm/arm.c                               |   3 +
 arch/arm64/kvm/hyp/nvhe/hyp-init.S                 |   2 +-
 arch/arm64/mm/Makefile                             |   1 +
 arch/arm64/mm/fault.c                              |  34 +--
 arch/arm64/mm/mmap.c                               |  15 +-
 arch/arm64/mm/mmu.c                                |   4 +-
 arch/arm64/mm/proc.S                               |  16 +-
 arch/arm64/mm/ptdump.c                             |   1 +
 arch/arm64/mm/trans_pgd.c                          | 324 +++++++++++++++++++++
 drivers/char/random.c                              |  15 +-
 drivers/firmware/smccc/smccc.c                     |   6 +
 drivers/perf/arm-cci.c                             |   7 +-
 drivers/perf/arm-cmn.c                             |  19 +-
 drivers/perf/arm_dmc620_pmu.c                      |   5 +-
 drivers/perf/arm_pmu.c                             |   2 +-
 drivers/perf/arm_smmuv3_pmu.c                      |   8 +-
 drivers/perf/arm_spe_pmu.c                         |  23 +-
 drivers/perf/fsl_imx8_ddr_perf.c                   |  10 +-
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c      |   2 +-
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c       |   2 +-
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c       |   2 +-
 drivers/perf/qcom_l2_pmu.c                         |   6 +-
 drivers/perf/qcom_l3_pmu.c                         |   6 +-
 drivers/perf/xgene_pmu.c                           |   5 +-
 fs/xfs/xfs_file.c                                  |   6 +-
 include/linux/arm-smccc.h                          |  31 ++
 include/linux/mm.h                                 |  25 +-
 include/linux/pgtable.h                            |  11 +
 mm/filemap.c                                       | 179 +++++++++---
 mm/khugepaged.c                                    |  37 ++-
 mm/memory.c                                        | 223 +++++---------
 mm/nommu.c                                         |   3 +-
 mm/shmem.c                                         |   6 +-
 mm/swapfile.c                                      |  11 +-
 .../selftests/arm64/mte/check_buffer_fill.c        |   2 +-
 91 files changed, 1652 insertions(+), 985 deletions(-)
 create mode 100644 arch/arm/include/asm/archrandom.h
 create mode 100644 arch/arm64/include/asm/setup.h
 create mode 100644 arch/arm64/include/asm/trans_pgd.h
 create mode 100644 arch/arm64/kernel/idreg-override.c
 rename arch/arm64/kernel/{vdso/vdso.S => vdso-wrap.S} (100%)
 rename arch/arm64/kernel/{vdso32/vdso.S => vdso32-wrap.S} (100%)
 create mode 100644 arch/arm64/mm/trans_pgd.c



More information about the linux-arm-kernel mailing list