[merged mm-stable] mm-remove-pagetranscompound.patch removed from -mm tree
Andrew Morton <[email protected]> Tue, 28 Jul 2026 21:13:15 -0700
| Newsgroups | org.kernel.vger.mm-commits |
|---|---|
| Message-ID | <[email protected]> |
The quilt patch titled
Subject: mm: remove PageTransCompound()
has been removed from the -mm tree. Its filename was
mm-remove-pagetranscompound.patch
This patch was dropped because it was merged into the mm-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Kefeng Wang <[email protected]>
Subject: mm: remove PageTransCompound()
Date: Thu, 18 Jun 2026 19:35:23 +0800
Remove the last user of PageTransCompound() in ksm and get rid of
PageTransCompound().
Link: https://lore.kernel.org/[email protected]
Signed-off-by: Kefeng Wang <[email protected]>
Acked-by: David Hildenbrand (Arm) <[email protected]>
Reviewed-by: Xu Xin <[email protected]>
Tested-by: Xu Xin <[email protected]>
Acked-by: Zi Yan <[email protected]>
Reviewed-by: SeongJae Park <[email protected]>
Cc: Chengming Zhou <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---
include/linux/page-flags.h | 14 --------------
mm/ksm.c | 17 +++++++++--------
2 files changed, 9 insertions(+), 22 deletions(-)
--- a/include/linux/page-flags.h~mm-remove-pagetranscompound
+++ a/include/linux/page-flags.h
@@ -879,20 +879,6 @@ FOLIO_FLAG_FALSE(partially_mapped)
#define PG_head_mask ((1UL << PG_head))
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-/*
- * PageTransCompound returns true for both transparent huge pages
- * and hugetlbfs pages, so it should only be called when it's known
- * that hugetlbfs pages aren't involved.
- */
-static inline int PageTransCompound(const struct page *page)
-{
- return PageCompound(page);
-}
-#else
-TESTPAGEFLAG_FALSE(TransCompound, transcompound)
-#endif
-
#if defined(CONFIG_MEMORY_FAILURE) && defined(CONFIG_TRANSPARENT_HUGEPAGE)
/*
* PageHasHWPoisoned indicates that at least one subpage is hwpoisoned in the
--- a/mm/ksm.c~mm-remove-pagetranscompound
+++ a/mm/ksm.c
@@ -2327,23 +2327,24 @@ static void cmp_and_merge_page(struct pa
tree_rmap_item =
unstable_tree_search_insert(rmap_item, page, &tree_page);
if (tree_rmap_item) {
+ struct folio *tree_folio;
bool split;
kfolio = try_to_merge_two_pages(rmap_item, page,
tree_rmap_item, tree_page);
+ tree_folio = page_folio(tree_page);
/*
- * If both pages we tried to merge belong to the same compound
- * page, then we actually ended up increasing the reference
- * count of the same compound page twice, and split_huge_page
- * failed.
+ * If both pages we tried to merge belong to the same (large)
+ * folio, then we actually ended up increasing the reference
+ * count of the same folio twice, and split_huge_page failed.
+ *
* Here we set a flag if that happened, and we use it later to
- * try split_huge_page again. Since we call put_page right
+ * try split_huge_page again. Since we call folio_put() right
* afterwards, the reference count will be correct and
* split_huge_page should succeed.
*/
- split = PageTransCompound(page)
- && compound_head(page) == compound_head(tree_page);
- put_page(tree_page);
+ split = folio == tree_folio;
+ folio_put(tree_folio);
if (kfolio) {
/*
* The pages were successfully merged: insert new
_
Patches currently in -mm which might be from [email protected] are
mm-introduce-pud_is_huge-helper.patch
mm-mincore-remove-special-handling-for-vm_pfnmap.patch
mm-mincore-remove-special-handling-for-vm_pfnmap-fix.patch
mm-mincore-replace-__get_free_page-with-kmalloc.patch
mm-mincore-remove-xa_is_value-in-mincore_swap.patch
mm-mincore-improve-mincore_hugetlb.patch
mm-mincore-improve-mincore_hugetlb-fix.patch
mm-mincore-refactor-mincore_page.patch