From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794246359; b=hGVlCVrNzVieSWEQqjtvg74gs+8L2tbmSwF68L0u+5bBmvjWEt6rd2SP/UeynyKU5wcT SRMJgSppGmrYjoDA8GSBsjJ8131As74GnQ0zAJfxQ80EBcU7Q4xwx9VqQUWYThaSxvVRr gUj5v14qb5xSrDSfkw39gEJRlskxkd/Xy/g45wJIZbo4WazR34J1C0e94jkV7bvLlQn3p bHFzeYlb/9vUr5vsG5wvLxl3F21xB3XwpMM5tgNDxvkWdK+1y5em5peV5vKJvvuI1guPL UzrtLa2GTgEq1H6TLg3wJDsULBEwWcrx1lUvk7MJpbDGsuG8tzlk4a9tgRV+fNox82A== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794246359; h=Received:DKIM-Signature:Date:To:Cc:From:Subject:Message-Id; bh=FXDKOv8kjQ/PZgGLIEsMsG3iNuc4Otp1FGE1taZIiDM=; b=MKANkLt7Dqh5ak2fZTGhls9Q907qFR5GXI3/b/h4jizQF5Zrtm+cM+TFRij8Mi7aPKSS +3EbrowsjomPfVv2d6WXzJqy0MHvyF/VsUYPssNC1CJs0CSeSRzZfiZyW92QwCiCztHdG AjTiDAdi2eZIpb+37rdGcdvd4BICmlBpklb5dVtwA+0/ytBEV4QxFO5rSWY9X4ry4pfh6 F0+uI5w8rbqC+Tn3EDqZH90JIbGRwlfFgkY189IslBzjpFUeh+QGkuyQQhA9Uq/Alg0ax jSzpO8Ki9Z0kUiEANS2+cdHx6FUNgRwSx05mEHJsL/aVR7tv6Y/VBJwuYD/aRWVpqFg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=linux-foundation.org header.i=@linux-foundation.org header.a=rsa-sha256 header.s=korg header.b=xGMDthMf; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94BCC606A338 for ; Mon, 9 Nov 2026 17:45:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.a=rsa-sha256 header.s=korg header.b=xGMDthMf Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5CB781F0089F; Mon, 9 Nov 2026 17:45:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=korg; t=1794246358; bh=FXDKOv8kjQ/PZgGLIEsMsG3iNuc4Otp1FGE1taZIiDM=; h=Date:To:Cc:From:Subject; b=xGMDthMfryg2VOjlZzC3EjGeXtlPlrL7qE278ngyl5s8LtKi4R3Xbykqop+vA1aKC mow6T6UlxQZ83pXmig6glYXDc4hzBMBPxlrBPBuxr56OOgO49dvTLo3ttQyWQGTNNg YI7CX+V/o/rR0pWtm/WK4gUOgmaNTCu3ihI8nyng= Date: Mon, 09 Nov 2026 09:45:57 -0800 To: mm-commits@vger.kernel.org, ljs@kernel.org, akpm@linux-foundation.org Cc: David Hildenbrand From: Andrew Morton Subject: [to-be-updated] mm-convert-thp-vma-flag-tests-to-use-vma_flags_t.patch removed from -mm tree Message-Id: <20261109174558.5CB781F0089F@smtp.kernel.org> X-Mailing-List: mm-commits@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list The quilt patch titled Subject: mm: convert THP VMA flag tests to use vma_flags_t has been removed from the -mm tree. Its filename was mm-convert-thp-vma-flag-tests-to-use-vma_flags_t.patch This patch was dropped because an updated version will be issued ------------------------------------------------------ From: "Lorenzo Stoakes (ARM)" Subject: mm: convert THP VMA flag tests to use vma_flags_t Date: Thu, 05 Nov 2026 21:30:56 +0000 Replace use of the legacy vm_flags_t flags with vma_flags_t values where VMA flags are tested directly in the THP and khugepaged logic. The thp_vma_allowable_orders() family of functions, hugepage_madvise() and khugepaged_enter_vma() continue to take legacy flags for the time being. Also update BUG_ON()'s to VM_WARN_ON_ONCE() while here. No functional change intended. Link: https://lore.kernel.org/20261105-late-2026-vma-flags-v1-5-0d3cd15ab75f@kernel.org Signed-off-by: Lorenzo Stoakes (ARM) Signed-off-by: Andrew Morton Reviewed-by: Baolin Wang Reviewed-by: Barry Song Reviewed-by: Lance Yang Cc: David Hildenbrand Cc: Jason Gunthorpe Cc: John Hubbard Cc: Peter Xu Cc: Matthew Wilcox (Oracle) Cc: Jan Kara Cc: Rik van Riel Cc: Liam R. Howlett Cc: Vlastimil Babka Cc: Harry Yoo Cc: Jann Horn Cc: Zi Yan Cc: Matthew Brost Cc: Joshua Hahn Cc: Byungchul Park Cc: Gregory Price Cc: Ying Huang Cc: Alistair Popple Cc: Nico Pache Cc: Ryan Roberts Cc: Dev Jain Cc: Usama Arif Cc: Kiryl Shutsemau Cc: Xu Xin Cc: Chengming Zhou Cc: Madhavan Srinivasan Cc: Nicholas Piggin Cc: Michael Ellerman Cc: Christophe Leroy Cc: Ritesh Harjani (IBM) Cc: Shrikanth Hegde Cc: Pedro Falcato Cc: Kairui Song Cc: Qi Zheng Cc: Shakeel Butt Cc: Axel Rasmussen Cc: Yuanchu Xie Cc: Wei Xu Cc: Baoquan He Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Leon Romanovsky Cc: SJ Park Cc: Rakie Kim Cc: David Rientjes Cc: Al Viro Cc: Christian Brauner Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Namhyung Kim Cc: Mark Rutland Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Ian Rogers Cc: Adrian Hunter Cc: James Clark Cc: Masami Hiramatsu Cc: Oleg Nesterov Cc: John Johansen Cc: Georgia Garcia Cc: Paul Moore Cc: James Morris Cc: Serge E. Hallyn Cc: Mimi Zohar Cc: Roberto Sassu Cc: Dmitry Kasatkin Cc: Eric Snowberg Cc: Fan Wu Cc: Stephen Smalley Cc: Ondrej Mosnáček --- mm/huge_memory.c | 32 ++++++++++++++++---------------- mm/khugepaged.c | 8 +++++--- 2 files changed, 21 insertions(+), 19 deletions(-) --- a/mm/huge_memory.c~mm-convert-thp-vma-flag-tests-to-use-vma_flags_t +++ a/mm/huge_memory.c @@ -1257,7 +1257,7 @@ __setup("thp_anon=", setup_thp_anon); pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) { - if (likely(vma->vm_flags & VM_WRITE)) + if (likely(vma_test(vma, VMA_WRITE_BIT))) pmd = pmd_mkwrite(pmd, vma); return pmd; } @@ -1517,7 +1517,7 @@ vm_fault_t do_huge_pmd_device_private(st */ gfp_t vma_thp_gfp_mask(struct vm_area_struct *vma) { - const bool vma_madvised = vma && (vma->vm_flags & VM_HUGEPAGE); + const bool vma_madvised = vma && vma_test(vma, VMA_HUGEPAGE_BIT); /* Always do synchronous compaction */ if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG, &transparent_hugepage_flags)) @@ -1716,10 +1716,9 @@ vm_fault_t vmf_insert_pfn_pmd(struct vm_ * but we need to be consistent with PTEs and architectures that * can't support a 'special' bit. */ - BUG_ON(!(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))); - BUG_ON((vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP)) == - (VM_PFNMAP|VM_MIXEDMAP)); - BUG_ON((vma->vm_flags & VM_PFNMAP) && vma_is_cow_mapping(vma)); + VM_WARN_ON_ONCE(!vma_test_any(vma, VMA_PFNMAP_BIT, VMA_MIXEDMAP_BIT)); + VM_WARN_ON_ONCE(vma_test_all(vma, VMA_PFNMAP_BIT, VMA_MIXEDMAP_BIT)); + VM_WARN_ON_ONCE(vma_test(vma, VMA_PFNMAP_BIT) && vma_is_cow_mapping(vma)); if (unlikely(is_huge_zero_pfn(pfn))) return VM_FAULT_SIGBUS; @@ -1750,7 +1749,7 @@ EXPORT_SYMBOL_GPL(vmf_insert_folio_pmd); #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD static pud_t maybe_pud_mkwrite(pud_t pud, struct vm_area_struct *vma) { - if (likely(vma->vm_flags & VM_WRITE)) + if (likely(vma_test(vma, VMA_WRITE_BIT))) pud = pud_mkwrite(pud); return pud; } @@ -1827,10 +1826,9 @@ vm_fault_t vmf_insert_pfn_pud(struct vm_ * but we need to be consistent with PTEs and architectures that * can't support a 'special' bit. */ - BUG_ON(!(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))); - BUG_ON((vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP)) == - (VM_PFNMAP|VM_MIXEDMAP)); - BUG_ON((vma->vm_flags & VM_PFNMAP) && vma_is_cow_mapping(vma)); + VM_WARN_ON_ONCE(!vma_test_any(vma, VMA_PFNMAP_BIT, VMA_MIXEDMAP_BIT)); + VM_WARN_ON_ONCE(vma_test_all(vma, VMA_PFNMAP_BIT, VMA_MIXEDMAP_BIT)); + VM_WARN_ON_ONCE(vma_test(vma, VMA_PFNMAP_BIT) && vma_is_cow_mapping(vma)); pfnmap_setup_cachemode_pfn(pfn, &pgprot); @@ -2273,7 +2271,7 @@ static inline bool can_change_pmd_writab { struct page *page; - if (WARN_ON_ONCE(!(vma->vm_flags & VM_WRITE))) + if (WARN_ON_ONCE(!vma_test(vma, VMA_WRITE_BIT))) return false; /* Don't touch entries that are not even readable (NUMA hinting). */ @@ -2288,7 +2286,7 @@ static inline bool can_change_pmd_writab if (userfaultfd_huge_pmd_wp(vma, pmd)) return false; - if (!(vma->vm_flags & VM_SHARED)) { + if (!vma_test(vma, VMA_SHARED_BIT)) { /* See can_change_pte_writable(). */ page = vm_normal_page_pmd(vma, addr, pmd); return page && PageAnon(page) && PageAnonExclusive(page); @@ -3627,7 +3625,8 @@ static bool __discard_anon_folio_pmd_loc if (pmd_dirty(orig_pmd)) folio_set_dirty(folio); - if (folio_test_dirty(folio) && !(vma->vm_flags & VM_DROPPABLE)) { + if (folio_test_dirty(folio) && + !vma_test_single_mask(vma, VMA_DROPPABLE)) { folio_set_swapbacked(folio); return false; } @@ -3659,7 +3658,8 @@ static bool __discard_anon_folio_pmd_loc */ if (pmd_dirty(orig_pmd)) folio_set_dirty(folio); - if (folio_test_dirty(folio) && !(vma->vm_flags & VM_DROPPABLE)) { + if (folio_test_dirty(folio) && + !vma_test_single_mask(vma, VMA_DROPPABLE)) { folio_set_swapbacked(folio); set_pmd_at(mm, addr, pmdp, orig_pmd); return false; @@ -3673,7 +3673,7 @@ static bool __discard_anon_folio_pmd_loc folio_remove_rmap_pmd(folio, pmd_page(orig_pmd), vma); zap_deposited_table(mm, pmdp); add_mm_counter(mm, MM_ANONPAGES, -HPAGE_PMD_NR); - if (vma->vm_flags & VM_LOCKED) + if (vma_test(vma, VMA_LOCKED_BIT)) mlock_drain_local(); folio_put(folio); --- a/mm/khugepaged.c~mm-convert-thp-vma-flag-tests-to-use-vma_flags_t +++ a/mm/khugepaged.c @@ -640,7 +640,8 @@ static enum scan_result __collapse_huge_ * If the vma has the VM_DROPPABLE flag, the collapse will * preserve the lazyfree property without needing to skip. */ - if (cc->policy.anon_skip_lazyfree && !(vma->vm_flags & VM_DROPPABLE) && + if (cc->policy.anon_skip_lazyfree && + !vma_test_single_mask(vma, VMA_DROPPABLE) && folio_test_lazyfree(folio) && !pte_dirty(pteval)) { result = SCAN_PAGE_LAZYFREE; goto out; @@ -1683,7 +1684,8 @@ static enum scan_result collapse_scan_an * If the vma has the VM_DROPPABLE flag, the collapse will * preserve the lazyfree property without needing to skip. */ - if (cc->policy.anon_skip_lazyfree && !(vma->vm_flags & VM_DROPPABLE) && + if (cc->policy.anon_skip_lazyfree && + !vma_test_single_mask(vma, VMA_DROPPABLE) && folio_test_lazyfree(folio) && !pte_dirty(pteval)) { result = SCAN_PAGE_LAZYFREE; failed_pfn = folio_pfn(folio); @@ -1949,7 +1951,7 @@ static enum scan_result try_collapse_pte * So page lock of folio does not protect from it, so we must not drop * ptl before pgt_pmd is removed, so uffd private needs pml taken now. */ - if (userfaultfd_armed(vma) && !(vma->vm_flags & VM_SHARED)) + if (userfaultfd_armed(vma) && !vma_test(vma, VMA_SHARED_BIT)) pml = pmd_lock(mm, pmd); start_pte = pte_offset_map_rw_nolock(mm, pmd, haddr, &pgt_pmd, &ptl); _ Patches currently in -mm which might be from ljs@kernel.org are mm-vma-read-anon_vma-carefully-in-validate_mm.patch mm-ksm-convert-vma-flag-tests-to-use-vma_flags_t.patch mm-madvise-convert-madvise_vma_behavior-to-use-vma_flags_t.patch mm-convert-miscellaneous-vma-flag-tests-to-use-vma_flags_t.patch fs-proc-task_mmu-convert-vma-flag-tests-to-use-vma_flags_t.patch fs-coredump-convert-vma_dump_size-to-use-vma_flags_t.patch uprobes-convert-vma-flag-tests-to-use-vma_flags_t.patch perf-convert-vma-flag-tests-to-use-vma_flags_t.patch security-convert-vma-flag-tests-to-use-vma_flags_t.patch