|
@@ -1795,14 +1795,17 @@ static int __split_huge_page_map(struct page *page,
|
|
|
for (i = 0; i < HPAGE_PMD_NR; i++, haddr += PAGE_SIZE) {
|
|
|
pte_t *pte, entry;
|
|
|
BUG_ON(PageCompound(page+i));
|
|
|
+ /*
|
|
|
+ * Note that pmd_numa is not transferred deliberately
|
|
|
+ * to avoid any possibility that pte_numa leaks to
|
|
|
+ * a PROT_NONE VMA by accident.
|
|
|
+ */
|
|
|
entry = mk_pte(page + i, vma->vm_page_prot);
|
|
|
entry = maybe_mkwrite(pte_mkdirty(entry), vma);
|
|
|
if (!pmd_write(*pmd))
|
|
|
entry = pte_wrprotect(entry);
|
|
|
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);
|