diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 35c66a269bccca8b88fc52485568b19b86e06264..cd24aa562144a002363b14a47febdf4611db83ca 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1364,6 +1364,8 @@ static int __split_huge_page_map(struct page *page,
 				BUG_ON(page_mapcount(page) != 1);
 			if (!pmd_young(*pmd))
 				entry = pte_mkold(entry);
+			if (pmd_numa(*pmd))
+				entry = pte_mknuma(entry);
 			pte = pte_offset_map(&_pmd, haddr);
 			BUG_ON(!pte_none(*pte));
 			set_pte_at(mm, haddr, pte, entry);