From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0317595741 for ; Tue, 8 Sep 2026 17:55:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788890139; cv=none; b=Z0Y+0hRlyq+/3GjiS2996DQyZy8hpAyBQ6NJYnu5Bjhf1J2m5bjojPwcpYY9IUoghy7E84vOOhP8sblhiuiP7+TZCLgAH3sV04R6ikALd40Fz7OWM+IOJRdvEn4I2oil2uZ47LVmXE2ZzsZ+3JeInEFfFKigUL1XLpTgpaMTW1o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788890139; c=relaxed/simple; bh=wcnMqiAs0ZG2Qc8h2N/jTZLGDJLmgcaGd9Vze6oXDRI=; h=Date:To:From:Subject:Message-Id; b=Q65MdkfYCCG5NXDaDxHSexY6b29vd5NKjtWUxcuVgAAHKbD+WHn50aCuDo4BM+UIvse0SKSkLrsr0HPnmc4BokSyajGHuZ1hUkBLx0MLAiWit3n9y2/iMJNrvT34RmO/d/pu/xR37FI4eaCZYltsOMOr1wBSDpPROEek1GeH3JA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b=ErFcI5Er; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b="ErFcI5Er" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 838741F00A3A; Tue, 8 Sep 2026 17:55:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=korg; t=1788890137; bh=tZYQu1LULgHo52dTXNC0RddaMRVHQ5z+DTXQBZK6/Uw=; h=Date:To:From:Subject; b=ErFcI5ErADcY0FzKJWrL0FUk8n+GqrW5MRFWaWb3tx8IhVG/vsMHM4rs8cX5lwAGp MhMxpRret42knqck22aOA297ndUBTviUkPFC1WsDjEGTCQROCfCCJ+0Rct2FH25P39 RMn4H4BrtyH19yZIal9GVMUamn/JI/xAGQUMvYz0= Date: Tue, 08 Sep 2026 10:55:37 -0700 To: mm-commits@vger.kernel.org,tz2294@columbia.edu,akpm@linux-foundation.org From: Andrew Morton Subject: + arm64-mte-pass-the-swap-entry-to-mte_save_tags.patch added to mm-new branch Message-Id: <20260908175537.838741F00A3A@smtp.kernel.org> Precedence: bulk X-Mailing-List: mm-commits@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: The patch titled Subject: arm64: mte: pass the swap entry to mte_save_tags() has been added to the -mm mm-new branch. Its filename is arm64-mte-pass-the-swap-entry-to-mte_save_tags.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/arm64-mte-pass-the-swap-entry-to-mte_save_tags.patch This patch will later appear in the mm-new branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Note, mm-new is a provisional staging ground for work-in-progress patches, and acceptance into mm-new is a notification for others take notice and to finish up reviews. Please do not hesitate to respond to review feedback and post updated versions to replace or incrementally fixup patches in mm-new. The mm-new branch of mm.git is not included in linux-next If a few days of testing in mm-new is successful, the patch will me moved into mm.git's mm-unstable branch, which is included in linux-next Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via various branches at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there most days ------------------------------------------------------ From: Tal Zussman Subject: arm64: mte: pass the swap entry to mte_save_tags() Date: Tue, 08 Sep 2026 11:16:37 -0400 arch_prepare_to_swap() derives a page from the folio only for mte_save_tags() to recompute the folio's swap entry from that page. Pass the entry in directly with folio_swap_entry(), matching mte_restore_tags(), and move the page_mte_tagged() check into the caller so we only compute the entry for tagged pages. __mte_invalidate_tags() loses its only user, so remove it and call mte_invalidate_tags() directly in the error path. This removes two calls to compound_head(). No functional change. Link: https://lore.kernel.org/20260908-folio_swap_entry-v2-7-ee6d01dfa5e1@columbia.edu Signed-off-by: Tal Zussman Cc: Baolin Wang Cc: Baoquan He Cc: Barry Song Cc: Catalin Marinas Cc: Chengming Zhou Cc: Chris Li Cc: David Hildenbrand Cc: Dev Jain Cc: Harry Yoo Cc: Jann Horn Cc: Johannes Weiner Cc: Kairui Song Cc: Kemeng Shi Cc: Kiryl Shutsemau Cc: Lance Yang Cc: Liam R. Howlett Cc: Lorenzo Stoakes Cc: Marc Rutland Cc: Nhat Pham Cc: Rik van Riel Cc: Ryan Roberts Cc: Vlastimil Babka Cc: Will Deacon Cc: Zi Yan Signed-off-by: Andrew Morton --- arch/arm64/mm/mteswap.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) --- a/arch/arm64/mm/mteswap.c~arm64-mte-pass-the-swap-entry-to-mte_save_tags +++ a/arch/arm64/mm/mteswap.c @@ -20,22 +20,17 @@ void mte_free_tag_storage(char *storage) kfree(storage); } -static int mte_save_tags(struct page *page) +static int mte_save_tags(swp_entry_t entry, struct page *page) { void *tag_storage, *ret; - if (!page_mte_tagged(page)) - return 0; - tag_storage = mte_allocate_tag_storage(); if (!tag_storage) return -ENOMEM; mte_save_page_tags(page_address(page), tag_storage); - /* lookup the swap entry.val from the page */ - ret = xa_store(&mte_pages, page_swap_entry(page).val, tag_storage, - GFP_KERNEL); + ret = xa_store(&mte_pages, entry.val, tag_storage, GFP_KERNEL); if (WARN(xa_is_err(ret), "Failed to store MTE tags")) { mte_free_tag_storage(tag_storage); return xa_err(ret); @@ -68,13 +63,6 @@ void mte_invalidate_tags(int type, pgoff mte_free_tag_storage(tags); } -static inline void __mte_invalidate_tags(struct page *page) -{ - swp_entry_t entry = page_swap_entry(page); - - mte_invalidate_tags(swp_type(entry), swp_offset(entry)); -} - void mte_invalidate_tags_area(int type) { swp_entry_t entry = swp_entry(type, 0); @@ -102,15 +90,23 @@ int arch_prepare_to_swap(struct folio *f nr = folio_nr_pages(folio); for (i = 0; i < nr; i++) { - err = mte_save_tags(folio_page(folio, i)); + struct page *page = folio_page(folio, i); + + if (!page_mte_tagged(page)) + continue; + + err = mte_save_tags(folio_swap_entry(folio, i), page); if (err) goto out; } return 0; out: - while (i--) - __mte_invalidate_tags(folio_page(folio, i)); + while (i--) { + swp_entry_t swap = folio_swap_entry(folio, i); + + mte_invalidate_tags(swp_type(swap), swp_offset(swap)); + } return err; } _ Patches currently in -mm which might be from tz2294@columbia.edu are mm-page_io-convert-write-completion-handlers-to-folios.patch mm-remove-pagereclaim.patch mm-page_io-use-swap-entries-directly-in-zeromap-helpers.patch mm-page_io-rename-bio_associate_blkg_from_page.patch mm-page_io-refer-to-folios-in-swap_writeout-comments.patch mm-swap-rename-__swap_writepage-to-__swap_writeout.patch mm-remove-unused-mark_page_reserved.patch mm-remove-unused-totalram_pages_inc-and-totalram_pages_dec.patch mm-remove-pagewriteback.patch mm-swap-add-folio_swap_entry-and-folio_page_swap_entry.patch mm-huge_memory-add-a-comment-to-the-open-coded-swap-entry.patch mm-rmap-use-folio_page_swap_entry-in-ttu_anon_swapbacked_folio.patch mm-zswap-use-folio_swap_entry-in-zswap_store_page.patch mm-swapfile-use-folio_page_swap_entry.patch arm64-mte-make-mte_save_tags-and-mte_restore_tags-static.patch arm64-mte-pass-the-swap-entry-to-mte_save_tags.patch mm-swap-remove-page_swap_entry.patch