x86/mm: Convert trivial cases of page table walk to 5-level paging
[sfrench/cifs-2.6.git] / arch / x86 / mm / pgtable_32.c
index 9adce776852be885cff56c59b07cec98b64f4dde..3d275a791c76cff93990c81520b85453b4865c77 100644 (file)
@@ -26,6 +26,7 @@ unsigned int __VMALLOC_RESERVE = 128 << 20;
 void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
 {
        pgd_t *pgd;
+       p4d_t *p4d;
        pud_t *pud;
        pmd_t *pmd;
        pte_t *pte;
@@ -35,7 +36,12 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
                BUG();
                return;
        }
-       pud = pud_offset(pgd, vaddr);
+       p4d = p4d_offset(pgd, vaddr);
+       if (p4d_none(*p4d)) {
+               BUG();
+               return;
+       }
+       pud = pud_offset(p4d, vaddr);
        if (pud_none(*pud)) {
                BUG();
                return;