[GIT PULL] arm64 updates for 7.2
Will Deacon
will at kernel.org
Mon Jun 15 03:08:24 PDT 2026
Hi Linus,
Please pull these arm64 updates for 7.2. The usual summary is in the
tag, although it feels like the new world of AI tooling has slowed us
down a little on the feature side when compared to the fixes side. The
extra rounds of Sashiko review have also pushed a few things out until
next time.
Still, there's some good foundational stuff here for the fpsimd code and
hardening work towards removing the predictable linear alias of the
kernel image.
There's a small conflict with an upstream fix that landed post -rc1 via
the KVM/arm64 tree (837263307489 ("KVM: arm64: Correctly cap ZCR_EL2
provided by a guest hypervisor")). My resolution is below.
Cheers,
Will
diff --cc arch/arm64/kvm/hyp/include/hyp/switch.h
index e9b36a3b27bb,1f12c4ba295a..000000000000
--- a/arch/arm64/kvm/hyp/include/hyp/switch.h
+++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
@@@ -470,10 -466,9 +470,9 @@@ static inline void __hyp_sve_restore_gu
* The vCPU's saved SVE state layout always matches the max VL of the
* vCPU. Start off with the max VL so we can load the SVE state.
*/
- sve_cond_update_zcr_vq(vcpu_sve_max_vq(vcpu) - 1, SYS_ZCR_EL2);
+ sve_cond_update_zcr_vq(zcr_el2, SYS_ZCR_EL2);
- __sve_restore_state(vcpu_sve_pffr(vcpu),
- &vcpu->arch.ctxt.fp_regs.fpsr,
- true);
+ sve_load_state(kern_hyp_va(vcpu->arch.sve_state), true);
+ fpsimd_load_common(&vcpu->arch.ctxt.fp_regs);
/*
* The effective VL for a VM could differ from the max VL when running a
--->8
The following changes since commit 254f49634ee16a731174d2ae34bc50bd5f45e731:
Linux 7.1-rc1 (2026-04-26 14:19:00 -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 61c19a9feb1d87156e46e38d7759f3ad23710e24:
Merge branch 'for-next/sysregs' into for-next/core (2026-06-14 12:18:27 +0100)
----------------------------------------------------------------
arm64 updates for 7.2
CPU errata handling:
- Extend CnP disabling workaround to HiSilicon HIP09 hardware.
- Work around eternally broken broadcast TLB invalidation on more CPUs.
- Documentation and code cleanups.
CPU features:
- Add new hwcaps for the 2025 dpISA extensions.
Floating point / SVE / SME:
- Significant cleanup to the low-level state management code in the core
architecture code and KVM.
- Use correct register widths during SVE/SME save/restore assembly.
- Expose SVE/SME save/restore memory accesses to sanitisers.
Memory management:
- Preparatory work for unmapping the kernel data and bss sections from
the linear map.
Miscellaneous:
- Inline DAIF manipulation helpers so they can be used safely from
non-instrumentable code.
- Fix handling of the 'nosmp' cmdline option to avoid marking secondary
cores as "possible".
MPAM:
- Add support for v0.1 of the MPAM architecture.
Perf:
- Update HiSilicon PMU MAINTAINERS entry.
- Fix event encodings for the DVM node in the CMN driver.
Selftests:
- Extend sigframe tests to cover POE context.
- Add coverage for the newly added 2025 dpISA hwcaps.
System registers:
- Add new registers and ESR encodings for the HDBSS feature.
Plus minor fixes and cleanups across the board.
----------------------------------------------------------------
Anshuman Khandual (2):
arm64/mm: Replace BUG_ON() with VM_WARN_ON_ONCE()
arm64/mm: Rename ptdesc_t
Ard Biesheuvel (20):
arm64: mm: Remove bogus stop condition from map_mem() loop
arm64: mm: Drop redundant pgd_t* argument from map_mem()
arm64: mm: Check for pud_/pmd_set_huge() failures on kernel mappings
arm64: mm: Preserve existing table mappings when mapping DRAM
arm64: mm: Preserve non-contiguous descriptors when mapping DRAM
arm64: mm: Permit contiguous descriptors to be manipulated
arm64: kfence: Avoid NOMAP tricks when mapping the early pool
arm64: mm: Permit contiguous attribute for preliminary mappings
arm64: Move fixmap and kasan page tables to end of kernel image
arm64: mm: Don't abuse memblock NOMAP to check for overlaps
powerpc/code-patching: Avoid r/w mapping of the zero page
sh: Drop cache flush of the zero page at boot
mm: Make empty_zero_page[] const
arm64: mm: Map the kernel data/bss read-only in the linear map
arm64: mm: Unmap kernel data/bss entirely from the linear map
arm64: Rename page table BSS section to .bss..pgtbl
kasan: Move generic KASAN page tables out of BSS too
arm64: Avoid double evaluation of __ptep_get()
KVM: arm64: Omit tag sync on stage-2 mappings of the zero page
arm64: mm: Defer remap of linear alias of data/bss
Breno Leitao (1):
arm64: arch_timer: reuse arch_timer_read_cnt{p,v}ct_el0() helpers
Ethan Nelson-Moore (1):
ARM64: remove unnecessary architecture-specific <asm/device.h>
Jonathan Cameron (1):
MAINTAINERS: Update HiSilicon PMU driver maintainer to Yushan Wang
Kevin Brodsky (4):
selftests/mm: Fix resv_sz when parsing arm64 signal frame
kselftest/arm64: Add POE as a feature in the signal tests
kselftest/arm64: Move/add POE helpers to test_signals_utils.h
kselftest/arm64: Add tests for POR_EL0 save/reset/restore
Krzysztof Kozlowski (1):
perf: qcom: Unify user-visible "Qualcomm" name
Leonardo Bras (1):
arm64/daifflags: Make local_daif_*() helpers __always_inline
Marco Elver (1):
arm64: Implement _THIS_IP_ using inline asm
Mark Brown (3):
arm64/cpufeature: Define hwcaps for 2025 dpISA features
kselftest/arm64: Add 2025 dpISA coverage to hwcaps
arm64: Document SVE constraints on new hwcaps
Mark Rutland (23):
arm64: fpsimd: Fix type mismatch in sve_{save,load}_state()
arm64: fpsimd: Fix type mismatch in sme_{save,load}_state()
KVM: arm64: Don't include <asm/fpsimdmacros.h>
KVM: arm64: Don't override FFR save/restore argument
KVM: arm64: pkvm: Save host FPMR in host cpu context
KVM: arm64: pkvm: Remove struct cpu_sve_state
arm64: fpsimd: Fold sve_init_regs() into do_sve_acc()
arm64: fpsimd: Remove sve_set_vq() and sme_set_vq()
arm64: fpsimd: Use assembler for SVE instructions
arm64: fpsimd: Use assembler for baseline SME instructions
arm64: fpsimd: Move sve_get_vl() and sme_get_vl() inline
arm64: sysreg: Add FPCR and FPSR
arm64: fpsimd: Split FPSR/FPCR from SVE save/restore
arm64: fpsimd: Move fpsimd save/restore inline
arm64: fpsimd: Use opaque type for SVE state
arm64: fpsimd: Use opaque type for SME state
arm64: fpsimd: Move SVE save/restore inline
arm64: fpsimd: Move sve_flush_live() inline
arm64: fpsimd: Move SME save/restore inline
arm64: fpsimd: Remove <asm/fpsimdmacros.h>
arm64: cputype: Add C1-Ultra definitions
arm64: cputype: Add C1-Premium definitions
arm64: errata: Mitigate TLBI errata on various Arm CPUs
Osama Abdelkader (1):
arm64: panic from init_IRQ if IRQ handler stacks cannot be allocated
Pengjie Zhang (1):
arm64: smp: Do not mark secondary CPUs possible under nosmp
Robin Murphy (2):
arm64: errata: Reformat table for IDs
perf/arm-cmn: Fix DVM node events
Shanker Donthineni (1):
arm64: errata: Mitigate TLBI errata on NVIDIA Olympus CPU
Thorsten Blum (2):
arm64: proton-pack: use sysfs_emit in sysfs show functions
arm64: patching: replace min_t with min in __text_poke
Will Deacon (12):
Revert "arm64: mm: Defer remap of linear alias of data/bss"
Revert "arm64: mm: Unmap kernel data/bss entirely from the linear map"
arm64: errata: Mitigate TLBI errata on Microsoft Azure Cobalt 100 CPU
Merge branch 'for-next/cpufeature' into for-next/core
Merge branch 'for-next/errata' into for-next/core
Merge branch 'for-next/fpsimd-cleanups' 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/mpam' into for-next/core
Merge branch 'for-next/perf' into for-next/core
Merge branch 'for-next/selftests' into for-next/core
Merge branch 'for-next/sysregs' into for-next/core
Zeng Heng (4):
arm64: cpufeature: Add support for the MPAM v0.1 architecture version
arm_mpam: Update architecture version check for MPAM MSC
arm64: cpufeature: Add WORKAROUND_DISABLE_CNP capability
arm64: kernel: Disable CNP on HiSilicon HIP09
eillon (1):
arm64/sysreg: Add HDBSS related register information
Documentation/arch/arm64/elf_hwcaps.rst | 27 ++
Documentation/arch/arm64/silicon-errata.rst | 93 +++--
MAINTAINERS | 2 +-
arch/arm64/Kconfig | 63 ++++
arch/arm64/include/asm/arch_timer.h | 12 +-
arch/arm64/include/asm/cpucaps.h | 4 +-
arch/arm64/include/asm/cpufeature.h | 7 +
arch/arm64/include/asm/cputype.h | 4 +
arch/arm64/include/asm/daifflags.h | 10 +-
arch/arm64/include/asm/device.h | 14 -
arch/arm64/include/asm/el2_setup.h | 4 +-
arch/arm64/include/asm/esr.h | 2 +
arch/arm64/include/asm/fpsimd.h | 386 +++++++++++++++++++--
arch/arm64/include/asm/fpsimdmacros.h | 357 -------------------
arch/arm64/include/asm/io.h | 2 +-
arch/arm64/include/asm/kvm_host.h | 27 +-
arch/arm64/include/asm/kvm_hyp.h | 5 -
arch/arm64/include/asm/kvm_pkvm.h | 3 +-
arch/arm64/include/asm/linkage.h | 4 +
arch/arm64/include/asm/pgtable-types.h | 14 +-
arch/arm64/include/asm/pgtable.h | 4 +-
arch/arm64/include/asm/processor.h | 7 +-
arch/arm64/include/asm/ptdump.h | 8 +-
arch/arm64/include/asm/tlbflush.h | 4 +-
arch/arm64/include/uapi/asm/hwcap.h | 8 +
arch/arm64/kernel/Makefile | 2 +-
arch/arm64/kernel/cpu_errata.c | 55 ++-
arch/arm64/kernel/cpufeature.c | 28 +-
arch/arm64/kernel/cpuinfo.c | 8 +
arch/arm64/kernel/efi.c | 4 +-
arch/arm64/kernel/entry-common.c | 8 +-
arch/arm64/kernel/entry-fpsimd.S | 134 -------
arch/arm64/kernel/fpsimd.c | 90 +++--
arch/arm64/kernel/irq.c | 29 +-
arch/arm64/kernel/patching.c | 3 +-
arch/arm64/kernel/pi/map_kernel.c | 2 +-
arch/arm64/kernel/pi/map_range.c | 4 +-
arch/arm64/kernel/pi/pi.h | 2 +-
arch/arm64/kernel/proton-pack.c | 17 +-
arch/arm64/kernel/smp.c | 14 +-
arch/arm64/kernel/vmlinux.lds.S | 8 +-
arch/arm64/kvm/arm.c | 16 +-
arch/arm64/kvm/guest.c | 4 +-
arch/arm64/kvm/hyp/entry.S | 1 -
arch/arm64/kvm/hyp/fpsimd.S | 33 --
arch/arm64/kvm/hyp/include/hyp/switch.h | 23 +-
arch/arm64/kvm/hyp/nvhe/Makefile | 2 +-
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 20 +-
arch/arm64/kvm/hyp/nvhe/setup.c | 4 +-
arch/arm64/kvm/hyp/vhe/Makefile | 2 +-
arch/arm64/kvm/mmu.c | 5 +
arch/arm64/mm/fixmap.c | 6 +-
arch/arm64/mm/kasan_init.c | 2 +-
arch/arm64/mm/mmap.c | 4 +-
arch/arm64/mm/mmu.c | 145 ++++----
arch/arm64/mm/pageattr.c | 2 +-
arch/arm64/mm/ptdump.c | 2 +-
arch/arm64/tools/cpucaps | 2 +-
arch/arm64/tools/sysreg | 74 ++++
arch/powerpc/lib/code-patching.c | 52 +--
arch/sh/mm/init.c | 3 -
drivers/perf/Kconfig | 4 +-
drivers/perf/arm-cmn.c | 23 +-
drivers/resctrl/mpam_devices.c | 23 +-
include/linux/linkage.h | 4 +
include/linux/pgtable.h | 2 +-
mm/kasan/init.c | 10 +-
mm/mm_init.c | 2 +-
tools/testing/selftests/arm64/abi/hwcap.c | 116 +++++++
.../testing/selftests/arm64/signal/test_signals.h | 2 +
.../selftests/arm64/signal/test_signals_utils.c | 3 +
.../selftests/arm64/signal/test_signals_utils.h | 16 +
.../signal/testcases/poe_missing_poe_context.c | 73 ++++
.../selftests/arm64/signal/testcases/poe_restore.c | 64 ++++
.../selftests/arm64/signal/testcases/poe_siginfo.c | 15 -
tools/testing/selftests/mm/pkey-arm64.h | 3 +-
76 files changed, 1275 insertions(+), 966 deletions(-)
delete mode 100644 arch/arm64/include/asm/device.h
delete mode 100644 arch/arm64/include/asm/fpsimdmacros.h
delete mode 100644 arch/arm64/kernel/entry-fpsimd.S
delete mode 100644 arch/arm64/kvm/hyp/fpsimd.S
create mode 100644 tools/testing/selftests/arm64/signal/testcases/poe_missing_poe_context.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/poe_restore.c
More information about the linux-arm-kernel
mailing list