As part of the memdescs effort, struct folio will be allocated separately from struct page and will no longer overlay the head page. set_huge_pmd() is a static helper with a single caller that passes both 'folio' and '&folio->page'. Drop the redundant struct page parameter and pass folio_page(folio, 0) to do_set_pmd() so khugepaged no longer references folio->page directly. No functional change intended. Assisted-by: LLM Signed-off-by: Nilay Vaish --- mm/khugepaged.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 913086eaf17b..63acb13f24eb 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1793,7 +1793,7 @@ static void collect_mm_slot(struct mm_slot *slot) /* folio must be locked, and mmap_lock must be held */ static enum scan_result set_huge_pmd(struct vm_area_struct *vma, unsigned long addr, - pmd_t *pmdp, struct folio *folio, struct page *page) + pmd_t *pmdp, struct folio *folio) { struct mm_struct *mm = vma->vm_mm; struct vm_fault vmf = { @@ -1821,7 +1821,7 @@ static enum scan_result set_huge_pmd(struct vm_area_struct *vma, unsigned long a } vmf.pmd = pmdp; - if (do_set_pmd(&vmf, folio, page)) + if (do_set_pmd(&vmf, folio, folio_page(folio, 0))) return SCAN_FAIL; folio_get(folio); @@ -2032,7 +2032,7 @@ static enum scan_result try_collapse_pte_mapped_thp(struct mm_struct *mm, unsign maybe_install_pmd: /* step 5: install pmd entry */ result = install_pmd - ? set_huge_pmd(vma, haddr, pmd, folio, &folio->page) + ? set_huge_pmd(vma, haddr, pmd, folio) : SCAN_SUCCEED; goto drop_folio; abort: -- 2.56.0.rc1.315.gc6ed9934b7-goog