summaryrefslogtreecommitdiff
path: root/mm/page_isolation.c
diff options
context:
space:
mode:
authorThomas Hellström <thomas.hellstrom@linux.intel.com>2025-03-19 11:08:52 +0100
committerThomas Hellström <thomas.hellstrom@linux.intel.com>2025-03-19 11:08:52 +0100
commit52eb8cd788f1a56a0645c1f6650e5795e04aaed0 (patch)
tree1d61fd7dbe5e7540e972069349b95ac65cd36880 /mm/page_isolation.c
parent28f79ac609de2797cccdd5fa6c4d5ec8bcef92b4 (diff)
parent5da39dce1fa3c81dc6552a16a9f748ba2980d630 (diff)
Merge drm/drm-next into drm-xe-next
Backmerging to bring in the xe shrinker from drm-next. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Diffstat (limited to 'mm/page_isolation.c')
-rw-r--r--mm/page_isolation.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index c608e9d728655..a051a29e95ad0 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -608,6 +608,16 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
int ret;
/*
+ * Due to the deferred freeing of hugetlb folios, the hugepage folios may
+ * not immediately release to the buddy system. This can cause PageBuddy()
+ * to fail in __test_page_isolated_in_pageblock(). To ensure that the
+ * hugetlb folios are properly released back to the buddy system, we
+ * invoke the wait_for_freed_hugetlb_folios() function to wait for the
+ * release to complete.
+ */
+ wait_for_freed_hugetlb_folios();
+
+ /*
* Note: pageblock_nr_pages != MAX_PAGE_ORDER. Then, chunks of free
* pages are not aligned to pageblock_nr_pages.
* Then we just check migratetype first.