diff --git a/mm/migrate.c b/mm/migrate.c index 1977905ce12c..b6f56b67e367 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -372,7 +372,11 @@ static bool remove_migration_pte(struct folio *folio, continue; } #endif - old_pte = ptep_get(pvmw.pte); + if (folio_test_hugetlb(folio)) + old_pte = huge_ptep_get(vma->vm_mm, pvmw.address, + pvmw.pte); + else + old_pte = ptep_get(pvmw.pte); if (rmap_walk_arg->map_unused_to_zeropage && try_to_map_unused_to_zeropage(&pvmw, folio, old_pte, idx)) continue;