diff options
Diffstat (limited to 'mm/page_vma_mapped.c')
-rw-r--r-- | mm/page_vma_mapped.c | 6 |
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); |