aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page_vma_mapped.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page_vma_mapped.c')
-rw-r--r--mm/page_vma_mapped.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c
index a23001a22c15..c4c9def8ffea 100644
--- a/mm/page_vma_mapped.c
+++ b/mm/page_vma_mapped.c
@@ -104,6 +104,7 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
104 struct mm_struct *mm = pvmw->vma->vm_mm; 104 struct mm_struct *mm = pvmw->vma->vm_mm;
105 struct page *page = pvmw->page; 105 struct page *page = pvmw->page;
106 pgd_t *pgd; 106 pgd_t *pgd;
107 p4d_t *p4d;
107 pud_t *pud; 108 pud_t *pud;
108 109
109 /* The only possible pmd mapping has been handled on last iteration */ 110 /* The only possible pmd mapping has been handled on last iteration */
@@ -133,7 +134,10 @@ restart:
133 pgd = pgd_offset(mm, pvmw->address); 134 pgd = pgd_offset(mm, pvmw->address);
134 if (!pgd_present(*pgd)) 135 if (!pgd_present(*pgd))
135 return false; 136 return false;
136 pud = pud_offset(pgd, pvmw->address); 137 p4d = p4d_offset(pgd, pvmw->address);
138 if (!p4d_present(*p4d))
139 return false;
140 pud = pud_offset(p4d, pvmw->address);
137 if (!pud_present(*pud)) 141 if (!pud_present(*pud))
138 return false; 142 return false;
139 pvmw->pmd = pmd_offset(pud, pvmw->address); 143 pvmw->pmd = pmd_offset(pud, pvmw->address);