| From | Andrea Arcangeli <> | Subject | [PATCH 25/40] autonuma: follow_page check for pte_numa/pmd_numa | Date | Thu, 28 Jun 2012 14:56:05 +0200 |
| |
Without this, follow_page wouldn't trigger the NUMA hinting faults.
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- mm/memory.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/memory.c b/mm/memory.c index 2e9cab2..78b6acc 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1491,7 +1491,7 @@ struct page *follow_page(struct vm_area_struct *vma, unsigned long address, goto no_page_table; pmd = pmd_offset(pud, address); - if (pmd_none(*pmd)) + if (pmd_none(*pmd) || pmd_numa(*pmd)) goto no_page_table; if (pmd_huge(*pmd) && vma->vm_flags & VM_HUGETLB) { BUG_ON(flags & FOLL_GET); @@ -1525,7 +1525,7 @@ split_fallthrough: ptep = pte_offset_map_lock(mm, pmd, address, &ptl); pte = *ptep; - if (!pte_present(pte)) + if (!pte_present(pte) || pte_numa(pte)) goto no_page; if ((flags & FOLL_WRITE) && !pte_write(pte)) goto unlock;
|