]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Merge branches 'for-next/misc', 'for-next/tlbflush', 'for-next/ttbr-macros-cleanup...
authorCatalin Marinas <catalin.marinas@arm.com>
Fri, 10 Apr 2026 13:22:24 +0000 (14:22 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 10 Apr 2026 13:22:24 +0000 (14:22 +0100)
* arm64/for-next/perf:
  : Perf updates
  perf/arm-cmn: Fix resource_size_t printk specifier in arm_cmn_init_dtc()
  perf/arm-cmn: Fix incorrect error check for devm_ioremap()
  perf: add NVIDIA Tegra410 C2C PMU
  perf: add NVIDIA Tegra410 CPU Memory Latency PMU
  perf/arm_cspmu: nvidia: Add Tegra410 PCIE-TGT PMU
  perf/arm_cspmu: nvidia: Add Tegra410 PCIE PMU
  perf/arm_cspmu: Add arm_cspmu_acpi_dev_get
  perf/arm_cspmu: nvidia: Add Tegra410 UCF PMU
  perf/arm_cspmu: nvidia: Rename doc to Tegra241
  perf/arm-cmn: Stop claiming entire iomem region
  arm64: cpufeature: Use pmuv3_implemented() function
  arm64: cpufeature: Make PMUVer and PerfMon unsigned
  KVM: arm64: Read PMUVer as unsigned

* arm64/for-next/read-once:
  : Fixes for __READ_ONCE() with CONFIG_LTO=y
  arm64, compiler-context-analysis: Permit alias analysis through __READ_ONCE() with CONFIG_LTO=y
  arm64: Optimize __READ_ONCE() with CONFIG_LTO=y

* for-next/misc:
  : Miscellaneous cleanups/fixes
  arm64: rsi: use linear-map alias for realm config buffer
  arm64: Kconfig: fix duplicate word in CMDLINE help text
  arm64: mte: Skip TFSR_EL1 checks and barriers in synchronous tag check mode
  arm64/hwcap: Generate the KERNEL_HWCAP_ definitions for the hwcaps
  arm64: kexec: Remove duplicate allocation for trans_pgd
  arm64: mm: Use generic enum pgtable_level
  arm64: scs: Remove redundant save/restore of SCS SP on entry to/from EL0
  arm64: remove ARCH_INLINE_*

* for-next/tlbflush:
  : Refactor the arm64 TLB invalidation API and implementation
  arm64: mm: __ptep_set_access_flags must hint correct TTL
  arm64: mm: Provide level hint for flush_tlb_page()
  arm64: mm: Wrap flush_tlb_page() around __do_flush_tlb_range()
  arm64: mm: More flags for __flush_tlb_range()
  arm64: mm: Refactor __flush_tlb_range() to take flags
  arm64: mm: Refactor flush_tlb_page() to use __tlbi_level_asid()
  arm64: mm: Simplify __flush_tlb_range_limit_excess()
  arm64: mm: Simplify __TLBI_RANGE_NUM() macro
  arm64: mm: Re-implement the __flush_tlb_range_op macro in C
  arm64: mm: Inline __TLBI_VADDR_RANGE() into __tlbi_range()
  arm64: mm: Push __TLBI_VADDR() into __tlbi_level()
  arm64: mm: Implicitly invalidate user ASID based on TLBI operation
  arm64: mm: Introduce a C wrapper for by-range TLB invalidation
  arm64: mm: Re-implement the __tlbi_level macro as a C function

* for-next/ttbr-macros-cleanup:
  : Cleanups of the TTBR1_* macros
  arm64/mm: Directly use TTBRx_EL1_CnP
  arm64/mm: Directly use TTBRx_EL1_ASID_MASK
  arm64/mm: Describe TTBR1_BADDR_4852_OFFSET

* for-next/kselftest:
  : arm64 kselftest updates
  selftests/arm64: Implement cmpbr_sigill() to hwcap test

* for-next/feat_lsui:
  : Futex support using FEAT_LSUI instructions to avoid toggling PAN
  arm64: armv8_deprecated: Disable swp emulation when FEAT_LSUI present
  arm64: Kconfig: Add support for LSUI
  KVM: arm64: Use CAST instruction for swapping guest descriptor
  arm64: futex: Support futex with FEAT_LSUI
  arm64: futex: Refactor futex atomic operation
  KVM: arm64: kselftest: set_id_regs: Add test for FEAT_LSUI
  KVM: arm64: Expose FEAT_LSUI to guests
  arm64: cpufeature: Add FEAT_LSUI

* for-next/mpam: (40 commits)
  : Expose MPAM to user-space via resctrl:
  :  - Add architecture context-switch and hiding of the feature from KVM.
  :  - Add interface to allow MPAM to be exposed to user-space using resctrl.
  :  - Add errata workaoround for some existing platforms.
  :  - Add documentation for using MPAM and what shape of platforms can use resctrl
  arm64: mpam: Add initial MPAM documentation
  arm_mpam: Quirk CMN-650's CSU NRDY behaviour
  arm_mpam: Add workaround for T241-MPAM-6
  arm_mpam: Add workaround for T241-MPAM-4
  arm_mpam: Add workaround for T241-MPAM-1
  arm_mpam: Add quirk framework
  arm_mpam: resctrl: Call resctrl_init() on platforms that can support resctrl
  arm64: mpam: Select ARCH_HAS_CPU_RESCTRL
  arm_mpam: resctrl: Add empty definitions for assorted resctrl functions
  arm_mpam: resctrl: Update the rmid reallocation limit
  arm_mpam: resctrl: Add resctrl_arch_rmid_read()
  arm_mpam: resctrl: Allow resctrl to allocate monitors
  arm_mpam: resctrl: Add support for csu counters
  arm_mpam: resctrl: Add monitor initialisation and domain boilerplate
  arm_mpam: resctrl: Add kunit test for control format conversions
  arm_mpam: resctrl: Add support for 'MB' resource
  arm_mpam: resctrl: Wait for cacheinfo to be ready
  arm_mpam: resctrl: Add rmid index helpers
  arm_mpam: resctrl: Convert to/from MPAMs fixed-point formats
  arm_mpam: resctrl: Hide CDP emulation behind CONFIG_EXPERT
  ...

* for-next/hotplug-batched-tlbi:
  : arm64/mm: Enable batched TLB flush in unmap_hotplug_range()
  arm64/mm: Reject memory removal that splits a kernel leaf mapping
  arm64/mm: Enable batched TLB flush in unmap_hotplug_range()

* for-next/bbml2-fixes:
  : Fixes for realm guest and BBML2_NOABORT
  arm64: mm: Remove pmd_sect() and pud_sect()
  arm64: mm: Handle invalid large leaf mappings correctly
  arm64: mm: Fix rodata=full block mapping support for realm guests

* for-next/sysreg:
  : arm64 sysreg updates
  arm64/sysreg: Update ID_AA64SMFR0_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64ZFR0_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64FPFR0_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64ISAR2_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64ISAR0_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update SMIDR_EL1 to DDI0601 2025-06

* for-next/generic-entry:
  : More arm64 refactoring towards using the generic entry code
  arm64: Check DAIF (and PMR) at task-switch time
  arm64: entry: Use split preemption logic
  arm64: entry: Use irqentry_{enter_from,exit_to}_kernel_mode()
  arm64: entry: Consistently prefix arm64-specific wrappers
  arm64: entry: Don't preempt with SError or Debug masked
  entry: Split preemption from irqentry_exit_to_kernel_mode()
  entry: Split kernel mode logic from irqentry_{enter,exit}()
  entry: Move irqentry_enter() prototype later
  entry: Remove local_irq_{enable,disable}_exit_to_user()
  entry: Fix stale comment for irqentry_enter()

* for-next/acpi:
  : arm64 ACPI updates
  ACPI: AGDI: fix missing newline in error message

1  2  3  4  5  6  7  8  9  10  11  12  13 
arch/arm64/Kconfig
arch/arm64/include/asm/mmu.h
arch/arm64/include/asm/pgtable.h
arch/arm64/kernel/cpufeature.c
arch/arm64/kernel/entry.S
arch/arm64/kernel/mte.c
arch/arm64/kernel/process.c
arch/arm64/kvm/sys_regs.c
arch/arm64/mm/mmu.c
arch/arm64/tools/sysreg

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index a6a00accf4f9380ca17fa3be2aee6abf17009e12,a6a00accf4f9380ca17fa3be2aee6abf17009e12,c45a6a47dad0bf8506bb2bc702505d091413ca2a,054df431846fd23601d6bd7d94776e25f0261069,c22678769c37d7b079c5fe526a305a13f4a5477b,a6a00accf4f9380ca17fa3be2aee6abf17009e12,a6a00accf4f9380ca17fa3be2aee6abf17009e12,a6a00accf4f9380ca17fa3be2aee6abf17009e12,5fb9a66f07546babdb1e3bac2ff6efeb7627359f,dcee56bb622adbef8dbd4840cccf19421acc9a0b,a6a00accf4f9380ca17fa3be2aee6abf17009e12,a6a00accf4f9380ca17fa3be2aee6abf17009e12,a6a00accf4f9380ca17fa3be2aee6abf17009e12..7ea743996a6127e111f219be67dbafdb5e4846f0
@@@@@@@@@@@@@@ -1480,17 -1480,17 -1483,17 -1480,17 -1480,17 -1480,17 -1480,17 -1480,17 -1484,16 -1503,17 -1480,17 -1480,17 -1480,17 +1510,16 @@@@@@@@@@@@@@ static void unmap_hotplug_pmd_range(pud
                                continue;
             
                        WARN_ON(!pmd_present(pmd));
--------- ---           if (pmd_sect(pmd)) {
+++++++++ +++           if (pmd_leaf(pmd)) {
                                pmd_clear(pmdp);
-------- ----
-------- ----                   /*
-------- ----                    * One TLBI should be sufficient here as the PMD_SIZE
-------- ----                    * range is mapped with a single block entry.
-------- ----                    */
-------- ----                   flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
-------- ----                   if (free_mapped)
++++++++ ++++                   if (free_mapped) {
++++++++ ++++                           /* CONT blocks are not supported in the vmemmap */
++++++++ ++++                           WARN_ON(pmd_cont(pmd));
++++++++ ++++                           flush_tlb_kernel_range(addr, addr + PMD_SIZE);
                                        free_hotplug_page_range(pmd_page(pmd),
                                                                PMD_SIZE, altmap);
++++++++ ++++                   }
++++++++ ++++                   /* unmap_hotplug_range() flushes TLB for !free_mapped */
                                continue;
                        }
                        WARN_ON(!pmd_table(pmd));
@@@@@@@@@@@@@@ -1513,17 -1513,17 -1516,17 -1513,17 -1513,17 -1513,17 -1513,17 -1513,17 -1516,14 -1536,17 -1513,17 -1513,17 -1513,17 +1542,14 @@@@@@@@@@@@@@ static void unmap_hotplug_pud_range(p4d
                                continue;
             
                        WARN_ON(!pud_present(pud));
--------- ---           if (pud_sect(pud)) {
+++++++++ +++           if (pud_leaf(pud)) {
                                pud_clear(pudp);
-------- ----
-------- ----                   /*
-------- ----                    * One TLBI should be sufficient here as the PUD_SIZE
-------- ----                    * range is mapped with a single block entry.
-------- ----                    */
-------- ----                   flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
-------- ----                   if (free_mapped)
++++++++ ++++                   if (free_mapped) {
++++++++ ++++                           flush_tlb_kernel_range(addr, addr + PUD_SIZE);
                                        free_hotplug_page_range(pud_page(pud),
                                                                PUD_SIZE, altmap);
++++++++ ++++                   }
++++++++ ++++                   /* unmap_hotplug_range() flushes TLB for !free_mapped */
                                continue;
                        }
                        WARN_ON(!pud_table(pud));
Simple merge