]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Dec 2025 01:03:55 +0000 (17:03 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Dec 2025 01:03:55 +0000 (17:03 -0800)
Pull arm64 updates from Catalin Marinas:
 "These are the arm64 updates for 6.19.

  The biggest part is the Arm MPAM driver under drivers/resctrl/.
  There's a patch touching mm/ to handle spurious faults for huge pmd
  (similar to the pte version). The corresponding arm64 part allows us
  to avoid the TLB maintenance if a (huge) page is reused after a write
  fault. There's EFI refactoring to allow runtime services with
  preemption enabled and the rest is the usual perf/PMU updates and
  several cleanups/typos.

  Summary:

  Core features:

   - Basic Arm MPAM (Memory system resource Partitioning And Monitoring)
     driver under drivers/resctrl/ which makes use of the fs/rectrl/ API

  Perf and PMU:

   - Avoid cycle counter on multi-threaded CPUs

   - Extend CSPMU device probing and add additional filtering support
     for NVIDIA implementations

   - Add support for the PMUs on the NoC S3 interconnect

   - Add additional compatible strings for new Cortex and C1 CPUs

   - Add support for data source filtering to the SPE driver

   - Add support for i.MX8QM and "DB" PMU in the imx PMU driver

  Memory managemennt:

   - Avoid broadcast TLBI if page reused in write fault

   - Elide TLB invalidation if the old PTE was not valid

   - Drop redundant cpu_set_*_tcr_t0sz() macros

   - Propagate pgtable_alloc() errors outside of __create_pgd_mapping()

   - Propagate return value from __change_memory_common()

  ACPI and EFI:

   - Call EFI runtime services without disabling preemption

   - Remove unused ACPI function

  Miscellaneous:

   - ptrace support to disable streaming on SME-only systems

   - Improve sysreg generation to include a 'Prefix' descriptor

   - Replace __ASSEMBLY__ with __ASSEMBLER__

   - Align register dumps in the kselftest zt-test

   - Remove some no longer used macros/functions

   - Various spelling corrections"

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (94 commits)
  arm64/mm: Document why linear map split failure upon vm_reset_perms is not problematic
  arm64/pageattr: Propagate return value from __change_memory_common
  arm64/sysreg: Remove unused define ARM64_FEATURE_FIELD_BITS
  KVM: arm64: selftests: Consider all 7 possible levels of cache
  KVM: arm64: selftests: Remove ARM64_FEATURE_FIELD_BITS and its last user
  arm64: atomics: lse: Remove unused parameters from ATOMIC_FETCH_OP_AND macros
  Documentation/arm64: Fix the typo of register names
  ACPI: GTDT: Get rid of acpi_arch_timer_mem_init()
  perf: arm_spe: Add support for filtering on data source
  perf: Add perf_event_attr::config4
  perf/imx_ddr: Add support for PMU in DB (system interconnects)
  perf/imx_ddr: Get and enable optional clks
  perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe()
  dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL
  arm64: remove duplicate ARCH_HAS_MEM_ENCRYPT
  arm64: mm: use untagged address to calculate page index
  MAINTAINERS: new entry for MPAM Driver
  arm_mpam: Add kunit tests for props_mismatch()
  arm_mpam: Add kunit test for bitmap reset
  arm_mpam: Add helper to reset saved mbwu state
  ...

33 files changed:
1  2 
MAINTAINERS
arch/arm64/include/asm/alternative.h
arch/arm64/include/asm/el2_setup.h
arch/arm64/include/asm/page.h
arch/arm64/include/asm/pgtable.h
arch/arm64/include/asm/scs.h
arch/arm64/include/asm/spectre.h
arch/arm64/include/asm/sysreg.h
arch/arm64/kernel/acpi.c
arch/arm64/kernel/cpufeature.c
arch/arm64/kernel/entry-common.c
arch/arm64/kernel/pi/map_kernel.c
arch/arm64/kernel/smp.c
arch/arm64/kvm/arch_timer.c
arch/arm64/kvm/arm.c
arch/arm64/kvm/hyp/nvhe/ffa.c
arch/arm64/kvm/nested.c
arch/arm64/mm/fault.c
arch/arm64/mm/mmu.c
arch/arm64/net/bpf_jit_comp.c
drivers/acpi/arm64/gtdt.c
drivers/firmware/efi/efi.c
drivers/perf/arm_pmu.c
drivers/perf/arm_pmuv3.c
drivers/perf/arm_spe_pmu.c
include/linux/acpi.h
include/linux/huge_mm.h
include/linux/perf/arm_pmu.h
include/linux/platform_device.h
include/uapi/linux/perf_event.h
mm/huge_memory.c
mm/memory.c
tools/testing/selftests/kvm/arm64/set_id_regs.c

diff --cc MAINTAINERS
Simple merge
Simple merge
index 99a7c0235e6dde88e6306e879e5506e33f133022,cb0d72401d4524a9d3b04b1cbd2a49693361f740..cacd20df1786e2241ea95206d1abef56c2d472f3
         * ID_AA64MMFR4_EL1.E2H0 < 0. On such CPUs HCR_EL2.E2H is RES1, but it
         * can reset into an UNKNOWN state and might not read as 1 until it has
         * been initialized explicitly.
-        * Initalize HCR_EL2.E2H so that later code can rely upon HCR_EL2.E2H
 -       *
 -       * Fruity CPUs seem to have HCR_EL2.E2H set to RAO/WI, but
 -       * don't advertise it (they predate this relaxation).
 -       *
+        * Initialize HCR_EL2.E2H so that later code can rely upon HCR_EL2.E2H
         * indicating whether the CPU is running in E2H mode.
         */
        mrs_s   x1, SYS_ID_AA64MMFR4_EL1
Simple merge
Simple merge
index c59f6324f2bbdb0578c56c1cd71fe383c8e14950,d31b128f683f6cb7004a557dbec19131ab6863f8..0fbc2e7867d3efaa5666caf11164ee71f40d1f1a
@@@ -53,8 -53,8 +53,8 @@@ enum 
        EDYNSCS_INVALID_CFA_OPCODE              = 4,
  };
  
 -int __pi_scs_patch(const u8 eh_frame[], int size);
 +int __pi_scs_patch(const u8 eh_frame[], int size, bool skip_dry_run);
  
- #endif /* __ASSEMBL__ */
+ #endif /* __ASSEMBLER__ */
  
  #endif /* _ASM_SCS_H */
index 900454aaa29264e9de06dee37c3f6a7b5e4eade3,0527c53b0ec564bc64e3a9b55e9f61b31dbdd727..296ae3420bfd7aca3765b6e4aa43d82beb281992
@@@ -117,7 -117,6 +117,7 @@@ void spectre_bhb_patch_wa3(struct alt_i
                           __le32 *origptr, __le32 *updptr, int nr_inst);
  void spectre_bhb_patch_clearbhb(struct alt_instr *alt,
                                __le32 *origptr, __le32 *updptr, int nr_inst);
 +void spectre_print_disabled_mitigations(void);
  
- #endif        /* __ASSEMBLY__ */
+ #endif        /* __ASSEMBLER__ */
  #endif        /* __ASM_SPECTRE_H */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 1ce428e2ac8a0ea86f89df77d51df191775b6d5d,fc407d891348f0e0fde3937fd933784746fdcda1..a9070d00b833f70461c86eee0872ca5c55d7c33a
@@@ -74,6 -74,9 +74,9 @@@ struct mm_struct efi_mm = 
        .page_table_lock        = __SPIN_LOCK_UNLOCKED(efi_mm.page_table_lock),
        .mmlist                 = LIST_HEAD_INIT(efi_mm.mmlist),
        .cpu_bitmap             = { [BITS_TO_LONGS(NR_CPUS)] = 0},
 -      .cpus_allowed_lock      = __RAW_SPIN_LOCK_UNLOCKED(efi_mm.cpus_allowed_lock),
+ #ifdef CONFIG_SCHED_MM_CID
++      .mm_cid.lock            = __RAW_SPIN_LOCK_UNLOCKED(efi_mm.mm_cid.lock),
+ #endif
  };
  
  struct workqueue_struct *efi_rts_wq;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mm/memory.c
Simple merge