Commit 9d607ae0f7d6 for kernel

commit 9d607ae0f7d629dc068aed5f498e24d3e9875ef1
Merge: 72ecc30d607f 2bd533739234
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Aug 28 09:02:04 2026 -0700

    Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

    Pull arm64 fixes from Will Deacon:
     "A mixture of ptdump, compat and MTE fixes that came in during the
      merge window:

       - Fix address handling of final memory region in ptdump

       - Fix emulation of decrementing load/store multiple from 32-bit task

       - Fix SCTLR context-switching for store-only MTE mode

       - Fix numerous issues in MTE selftests"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
      selftests/arm64: Add MTE test config fragment
      selftests/arm64: Fix MTE prctl TAP plan
      selftests/arm64: Treat KSM merge_across_nodes as optional
      selftests/arm64: Print missing MTE TAP headers
      arm64: compat: Fix decrementing LDM/STM alignment emulation
      arm64: process: Fix context switching MTE store-only tag check
      KVM: arm64: ptdump: Flush the last region
      arm64: ptdump: Make note_page_flush() range aware

diff --cc arch/arm64/mm/ptdump.c
index 5a76c59b5ada,eab400e744d9..9d9bcb6738f4
--- a/arch/arm64/mm/ptdump.c
+++ b/arch/arm64/mm/ptdump.c
@@@ -278,11 -278,28 +278,21 @@@ void note_page_pgd(struct ptdump_state

  void note_page_flush(struct ptdump_state *pt_st)
  {
+ 	struct ptdump_pg_state *st = container_of(pt_st, struct ptdump_pg_state, ptdump);
+ 	unsigned long end = st->end_address;
  	pte_t pte_zero = {0};

- 	note_page(pt_st, 0, -1, pte_val(pte_zero));
+ 	/*
+ 	 * Address spaces that end at 1 << 64 have end_address == ULONG_MAX,
+ 	 * but note_page() expects the exclusive end. In this case adjust end
+ 	 * to the wraparound value 0.
+ 	 */
+ 	if (end == ULONG_MAX)
+ 		end = 0;
+
+ 	note_page(pt_st, end, -1, pte_val(pte_zero));
  }

 -static void arm64_ptdump_walk_pgd(struct ptdump_state *st, struct mm_struct *mm)
 -{
 -	static_branch_inc(&arm64_ptdump_lock_key);
 -	ptdump_walk_pgd(st, mm, NULL);
 -	static_branch_dec(&arm64_ptdump_lock_key);
 -}
 -
  void ptdump_walk(struct seq_file *s, struct ptdump_info *info)
  {
  	unsigned long end = ~0UL;