lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250528114103.GA27965@willie-the-truck>
Date: Wed, 28 May 2025 12:41:04 +0100
From: Will Deacon <will@...nel.org>
To: torvalds@...ux-foundation.org
Cc: catalin.marinas@....com, linux-arm-kernel@...ts.infradead.org,
	linux-kernel@...r.kernel.org, kernel-team@...roid.com
Subject: [GIT PULL] arm64 updates for 6.16

Hi Linus,

Please pull these arm64 changes for 6.16. As per usual, the summary is
included in the tag, but the headline feature is the re-enablement of
support for Arm's Scalable Matrix Extension (SME) thanks to a bumper
crop of fixes from Mark Rutland. If matrices aren't your thing, then
Ryan's page-table optimisation work is much more interesting.

There are two logistical things to be aware of:

  1. I've merged in for-next/fixes because the work to prevent BSS
     exports being used in the PI code depended on it. The branch
     appears as the base commit since you've pulled it already in 6.15.

  2. There's a trivial conflict in arch/arm64/kernel/image-vars.h with
     your tree due to a fix that landed in 6.15 via the KVM tree. The
     resolution is to take the new hunk, dropping the part guarded by
     CONFIG_CAVIUM_ERRATUM_27456. My resolution is below.

Any problems, please yell.

Cheers,

Will

--->8

diff --cc arch/arm64/kernel/image-vars.h
index 2004b4f41ade,c5266430284b..000000000000
--- a/arch/arm64/kernel/image-vars.h
+++ b/arch/arm64/kernel/image-vars.h
@@@ -36,37 -42,34 +42,30 @@@ PROVIDE(__pi___memcpy			= __pi_memcpy)
  PROVIDE(__pi___memmove			= __pi_memmove);
  PROVIDE(__pi___memset			= __pi_memset);
  
- PROVIDE(__pi_id_aa64isar1_override	= id_aa64isar1_override);
- PROVIDE(__pi_id_aa64isar2_override	= id_aa64isar2_override);
- PROVIDE(__pi_id_aa64mmfr0_override	= id_aa64mmfr0_override);
- PROVIDE(__pi_id_aa64mmfr1_override	= id_aa64mmfr1_override);
- PROVIDE(__pi_id_aa64mmfr2_override	= id_aa64mmfr2_override);
- PROVIDE(__pi_id_aa64pfr0_override	= id_aa64pfr0_override);
- PROVIDE(__pi_id_aa64pfr1_override	= id_aa64pfr1_override);
- PROVIDE(__pi_id_aa64smfr0_override	= id_aa64smfr0_override);
- PROVIDE(__pi_id_aa64zfr0_override	= id_aa64zfr0_override);
- PROVIDE(__pi_arm64_sw_feature_override	= arm64_sw_feature_override);
- PROVIDE(__pi_arm64_use_ng_mappings	= arm64_use_ng_mappings);
- PROVIDE(__pi__ctype			= _ctype);
- PROVIDE(__pi_memstart_offset_seed	= memstart_offset_seed);
+ PI_EXPORT_SYM(id_aa64isar1_override);
+ PI_EXPORT_SYM(id_aa64isar2_override);
+ PI_EXPORT_SYM(id_aa64mmfr0_override);
+ PI_EXPORT_SYM(id_aa64mmfr1_override);
+ PI_EXPORT_SYM(id_aa64mmfr2_override);
+ PI_EXPORT_SYM(id_aa64pfr0_override);
+ PI_EXPORT_SYM(id_aa64pfr1_override);
+ PI_EXPORT_SYM(id_aa64smfr0_override);
+ PI_EXPORT_SYM(id_aa64zfr0_override);
+ PI_EXPORT_SYM(arm64_sw_feature_override);
+ PI_EXPORT_SYM(arm64_use_ng_mappings);
 -#ifdef CONFIG_CAVIUM_ERRATUM_27456
 -PI_EXPORT_SYM(cavium_erratum_27456_cpus);
 -PI_EXPORT_SYM(is_midr_in_range_list);
 -#endif
+ PI_EXPORT_SYM(_ctype);
  
- PROVIDE(__pi_init_idmap_pg_dir		= init_idmap_pg_dir);
- PROVIDE(__pi_init_idmap_pg_end		= init_idmap_pg_end);
- PROVIDE(__pi_init_pg_dir		= init_pg_dir);
- PROVIDE(__pi_init_pg_end		= init_pg_end);
- PROVIDE(__pi_swapper_pg_dir		= swapper_pg_dir);
+ PI_EXPORT_SYM(swapper_pg_dir);
  
- PROVIDE(__pi__text			= _text);
- PROVIDE(__pi__stext               	= _stext);
- PROVIDE(__pi__etext               	= _etext);
- PROVIDE(__pi___start_rodata       	= __start_rodata);
- PROVIDE(__pi___inittext_begin     	= __inittext_begin);
- PROVIDE(__pi___inittext_end       	= __inittext_end);
- PROVIDE(__pi___initdata_begin     	= __initdata_begin);
- PROVIDE(__pi___initdata_end       	= __initdata_end);
- PROVIDE(__pi__data                	= _data);
- PROVIDE(__pi___bss_start		= __bss_start);
- PROVIDE(__pi__end			= _end);
+ PI_EXPORT_SYM(_text);
+ PI_EXPORT_SYM(_stext);
+ PI_EXPORT_SYM(_etext);
+ PI_EXPORT_SYM(__start_rodata);
+ PI_EXPORT_SYM(__inittext_begin);
+ PI_EXPORT_SYM(__inittext_end);
+ PI_EXPORT_SYM(__initdata_begin);
+ PI_EXPORT_SYM(__initdata_end);
+ PI_EXPORT_SYM(_data);
  
  #ifdef CONFIG_KVM
  
--->8

The following changes since commit 363cd2b81cfdf706bbfc9ec78db000c9b1ecc552:

  arm64: cpufeature: Move arm64_use_ng_mappings to the .data section to prevent wrong idmap generation (2025-05-06 11:43:44 +0100)

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 217e3cbba3d6613bee9ac33ddc330f8676eb9eca:

  Merge branch 'for-next/vdso' into for-next/core (2025-05-27 12:26:54 +0100)

----------------------------------------------------------------
arm64 updates for 6.16

ACPI, EFI and PSCI:
 - Decouple Arm's "Software Delegated Exception Interface" (SDEI)
   support from the ACPI GHES code so that it can be used by platforms
   booted with device-tree.

 - Remove unnecessary per-CPU tracking of the FPSIMD state across EFI
   runtime calls.

 - Fix a node refcount imbalance in the PSCI device-tree code.

CPU Features:
 - Ensure register sanitisation is applied to fields in ID_AA64MMFR4.

 - Expose AIDR_EL1 to userspace via sysfs, primarily so that KVM guests
   can reliably query the underlying CPU types from the VMM.

 - Re-enabling of SME support (CONFIG_ARM64_SME) as a result of fixes
   to our context-switching, signal handling and ptrace code.

Entry code:
 - Hook up TIF_NEED_RESCHED_LAZY so that CONFIG_PREEMPT_LAZY can be
   selected.

Memory management:
 - Prevent BSS exports from being used by the early PI code.

 - Propagate level and stride information to the low-level TLB
   invalidation routines when operating on hugetlb entries.

 - Use the page-table contiguous hint for vmap() mappings with
   VM_ALLOW_HUGE_VMAP where possible.

 - Optimise vmalloc()/vmap() page-table updates to use "lazy MMU mode"
   and hook this up on arm64 so that the trailing DSB (used to publish
   the updates to the hardware walker) can be deferred until the end of
   the mapping operation.

 - Extend mmap() randomisation for 52-bit virtual addresses (on par with
   48-bit addressing) and remove limited support for randomisation of
   the linear map.

Perf and PMUs:
 - Add support for probing the CMN-S3 driver using ACPI.

 - Minor driver fixes to the CMN, Arm-NI and amlogic PMU drivers.

Selftests:
 - Fix FPSIMD and SME tests to align with the freshly re-enabled SME
   support.

 - Fix default setting of the OUTPUT variable so that tests are
   installed in the right location.

vDSO:
 - Replace raw counter access from inline assembly code with a call to
   the the __arch_counter_get_cntvct() helper function.

Miscellaneous:
 - Add some missing header inclusions to the CCA headers.

 - Rework rendering of /proc/cpuinfo to follow the x86-approach and
   avoid repeated buffer expansion (the user-visible format remains
   identical).

 - Remove redundant selection of CONFIG_CRC32

 - Extend early error message when failing to map the device-tree blob.

----------------------------------------------------------------
Anand Moon (1):
      perf/amlogic: Replace smp_processor_id() with raw_smp_processor_id() in meson_ddr_pmu_create()

Anshuman Khandual (1):
      arm64/mm: Re-organise setting up FEAT_S1PIE registers PIRE0_EL1 and PIR_EL1

Ard Biesheuvel (5):
      arm64/fpsimd: Avoid unnecessary per-CPU buffers for EFI runtime calls
      arm64/mm: Remove randomization of the linear map
      arm64/boot: Move init_pgdir[] and init_idmap_pgdir[] into __pi_ namespace
      arm64/boot: Move global CPU override variables out of BSS
      arm64/boot: Disallow BSS exports to startup code

Bartosz Szczepanek (1):
      arm64: Extend pr_crit message on invalid FDT

Ben Horgan (1):
      arm64: Update comment regarding values in __boot_cpu_mode

Breno Leitao (1):
      arm64: vdso: Use __arch_counter_get_cntvct()

Dev Jain (1):
      arm64: pageattr: Explicitly bail out when changing permissions for vmalloc_huge mappings

Eric Biggers (1):
      arm64: Kconfig: remove unnecessary selection of CRC32

Gavin Shan (1):
      arm64: mm: Drop redundant check in pmd_trans_huge()

Hongbo Yao (2):
      perf: arm-ni: Unregister PMUs on probe failure
      perf: arm-ni: Fix missing platform_set_drvdata()

Huang Yiwei (1):
      firmware: SDEI: Allow sdei initialization without ACPI_APEI_GHES

Jason Gunthorpe (1):
      arm64: Add missing includes for mem_encrypt

Kornel Dulęba (1):
      arm64: Support ARM64_VA_BITS=52 when setting ARCH_MMAP_RND_BITS_MAX

Krzysztof Kozlowski (1):
      perf: Do not enable by default during compile testing

Mark Brown (2):
      arm64/fpsimd: Discard stale CPU state when handling SME traps
      arm64/fpsimd: Don't corrupt FPMR when streaming mode changes

Mark Rutland (38):
      arm64/fpsimd: Avoid RES0 bits in the SME trap handler
      arm64/fpsimd: Remove unused fpsimd_force_sync_to_sve()
      arm64/fpsimd: Remove redundant SVE trap manipulation
      arm64/fpsimd: Remove opportunistic freeing of SME state
      arm64/fpsimd: Avoid clobbering kernel FPSIMD state with SMSTOP
      arm64/fpsimd: Reset FPMR upon exec()
      arm64/fpsimd: Fix merging of FPSIMD state during signal return
      arm64/fpsimd: Add fpsimd_save_and_flush_current_state()
      arm64/fpsimd: signal32: Always save+flush state early
      arm64/fpsimd: signal: Always save+flush state early
      arm64/fpsimd: signal: Simplify preserve_tpidr2_context()
      arm64/fpsimd: signal: Clear TPIDR2 when delivering signals
      arm64: enable PREEMPT_LAZY
      arm64/fpsimd: Avoid warning when sve_to_fpsimd() is unused
      arm64/fpsimd: Do not discard modified SVE state
      arm64/fpsimd: signal: Clear PSTATE.SM when restoring FPSIMD frame only
      arm64/fpsimd: signal: Mandate SVE payload for streaming-mode state
      arm64/fpsimd: signal: Consistently read FPSIMD context
      arm64/fpsimd: ptrace: Consistently handle partial writes to NT_ARM_(S)SVE
      arm64/fpsimd: Clarify sve_sync_*() functions
      arm64/fpsimd: Factor out {sve,sme}_state_size() helpers
      arm64/fpsimd: Add task_smstop_sm()
      arm64/fpsimd: signal: Use SMSTOP behaviour in setup_return()
      arm64/fpsimd: Remove redundant task->mm check
      arm64/fpsimd: Consistently preserve FPSIMD state during clone()
      arm64/fpsimd: Clear PSTATE.SM during clone()
      arm64/fpsimd: Make clone() compatible with ZA lazy saving
      arm64/fpsimd: ptrace/prctl: Ensure VL changes do not resurrect stale data
      arm64/fpsimd: ptrace/prctl: Ensure VL changes leave task in a valid state
      arm64/fpsimd: ptrace: Save task state before generating SVE header
      arm64/fpsimd: ptrace: Do not present register data for inactive mode
      arm64/fpsimd: ptrace: Mandate SVE payload for streaming-mode state
      arm64/fpsimd: ptrace: Gracefully handle errors
      arm64/fpsimd: Allow CONFIG_ARM64_SME to be selected
      kselftest/arm64: fp-ptrace: Fix expected FPMR value when PSTATE.SM is changed
      kselftest/arm64: tpidr2: Adjust to new clone() behaviour
      kselftest/arm64: fp-ptrace: Adjust to new VL change behaviour
      kselftest/arm64: fp-ptrace: Adjust to new inactive mode behaviour

Miaoqian Lin (1):
      firmware: psci: Fix refcount leak in psci_dt_init

Oliver Upton (1):
      arm64: Expose AIDR_EL1 via sysfs

Rob Herring (Arm) (1):
      arm64: el2_setup.h: Make __init_el2_fgt labels consistent, again

Robin Murphy (4):
      perf/arm-cmn: Remove CMN-600 DTC domain special case
      perf/arm-cmn: Fix REQ2/SNP2 mixup
      perf/arm-cmn: Initialise cmn->cpu earlier
      perf/arm-cmn: Add CMN S3 ACPI binding

Ryan Roberts (13):
      arm64: hugetlb: Cleanup huge_pte size discovery mechanisms
      arm64: hugetlb: Refine tlb maintenance scope
      mm/page_table_check: Batch-check pmds/puds just like ptes
      arm64/mm: Refactor __set_ptes() and __ptep_get_and_clear()
      arm64: hugetlb: Use __set_ptes_anysz() and __ptep_get_and_clear_anysz()
      arm64/mm: Hoist barriers out of set_ptes_anysz() loop
      mm/vmalloc: Warn on improper use of vunmap_range()
      mm/vmalloc: Gracefully unmap huge ptes
      arm64/mm: Support huge pte-mapped pages in vmap
      mm/vmalloc: Enter lazy mmu mode while manipulating vmalloc ptes
      arm64/mm: Batch barriers when updating kernel mappings
      arm64/mm: Disable barrier batching in interrupt contexts
      arm64/mm: Permit lazy_mmu_mode to be nested

Will Deacon (12):
      Merge branch 'for-next/acpi' into for-next/core
      Merge branch 'for-next/cpufeature' into for-next/core
      Merge branch 'for-next/efi' into for-next/core
      Merge branch 'for-next/entry' into for-next/core
      Merge branch 'for-next/fixes' 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/perf' into for-next/core
      Merge branch 'for-next/psci' into for-next/core
      Merge branch 'for-next/selftests' into for-next/core
      Merge branch 'for-next/sme-fixes' into for-next/core
      Merge branch 'for-next/vdso' into for-next/core

Ye Bin (1):
      arm64/cpuinfo: only show one cpu's info in c_show()

Yicong Yang (2):
      arm64/cpufeature: Add missing id_aa64mmfr4 feature reg update
      arm64: cputype: Add cputype definition for HIP12

tanze (1):
      kselftest/arm64: Set default OUTPUT path when undefined

 Documentation/ABI/testing/sysfs-devices-system-cpu |   1 +
 Documentation/arch/arm64/cpu-feature-registers.rst |  13 +-
 Documentation/arch/arm64/sme.rst                   |   8 +-
 arch/arm64/Kconfig                                 |   9 +-
 arch/arm64/include/asm/cpu.h                       |   1 +
 arch/arm64/include/asm/cputype.h                   |   2 +
 arch/arm64/include/asm/el2_setup.h                 |  10 +-
 arch/arm64/include/asm/esr.h                       |  12 +-
 arch/arm64/include/asm/fpsimd.h                    |  64 +++-
 arch/arm64/include/asm/hugetlb.h                   |  41 ++-
 arch/arm64/include/asm/mem_encrypt.h               |   2 +
 arch/arm64/include/asm/pgtable.h                   | 238 +++++++++----
 arch/arm64/include/asm/rsi_cmds.h                  |   2 +
 arch/arm64/include/asm/thread_info.h               |  18 +-
 arch/arm64/include/asm/vdso/gettimeofday.h         |  22 +-
 arch/arm64/include/asm/virt.h                      |   3 +-
 arch/arm64/include/asm/vmalloc.h                   |  45 +++
 arch/arm64/kernel/asm-offsets.c                    |   2 +
 arch/arm64/kernel/cpufeature.c                     |  22 +-
 arch/arm64/kernel/cpuinfo.c                        | 108 +++---
 arch/arm64/kernel/efi.c                            |   4 +-
 arch/arm64/kernel/entry-common.c                   |  48 ++-
 arch/arm64/kernel/fpsimd.c                         | 380 +++++++++------------
 arch/arm64/kernel/head.S                           |   6 +-
 arch/arm64/kernel/image-vars.h                     |  61 ++--
 arch/arm64/kernel/kaslr.c                          |   2 -
 arch/arm64/kernel/pi/kaslr_early.c                 |   4 -
 arch/arm64/kernel/pi/pi.h                          |   1 +
 arch/arm64/kernel/process.c                        | 126 ++++---
 arch/arm64/kernel/ptrace.c                         | 137 ++++----
 arch/arm64/kernel/setup.c                          |  10 +-
 arch/arm64/kernel/signal.c                         | 149 +++-----
 arch/arm64/kernel/signal32.c                       |  11 +-
 arch/arm64/kernel/vmlinux.lds.S                    |  10 +-
 arch/arm64/mm/hugetlbpage.c                        |  73 ++--
 arch/arm64/mm/init.c                               |  20 --
 arch/arm64/mm/pageattr.c                           |   6 +-
 arch/arm64/mm/proc.S                               |  19 +-
 drivers/acpi/apei/Kconfig                          |   1 +
 drivers/acpi/apei/ghes.c                           |   2 +-
 drivers/firmware/Kconfig                           |   1 -
 drivers/firmware/arm_sdei.c                        |  11 +-
 drivers/firmware/psci/psci.c                       |   4 +-
 drivers/perf/Kconfig                               |   2 +-
 drivers/perf/amlogic/meson_ddr_pmu_core.c          |   2 +-
 drivers/perf/arm-cmn.c                             |  18 +-
 drivers/perf/arm-ni.c                              |  40 ++-
 include/linux/arm_sdei.h                           |   4 +-
 include/linux/page_table_check.h                   |  30 +-
 include/linux/vmalloc.h                            |   8 +
 mm/page_table_check.c                              |  34 +-
 mm/vmalloc.c                                       |  40 ++-
 tools/testing/selftests/arm64/Makefile             |   2 +
 tools/testing/selftests/arm64/abi/tpidr2.c         |  14 +-
 tools/testing/selftests/arm64/fp/fp-ptrace.c       |  62 ++--
 55 files changed, 1067 insertions(+), 898 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ