kernel/arch/sh/mm/tlbex_32.c
.. .. @@ -23,6 +23,7 @@ 23 23 unsigned long address) 24 24 { 25 25 pgd_t *pgd; 26 + p4d_t *p4d;26 27 pud_t *pud; 27 28 pmd_t *pmd; 28 29 pte_t *pte; .. .. @@ -42,7 +43,10 @@ 42 43 pgd = pgd_offset(current->mm, address); 43 44 } 44 45 45 - pud = pud_offset(pgd, address);46 + p4d = p4d_offset(pgd, address);47 + if (p4d_none_or_clear_bad(p4d))48 + return 1;49 + pud = pud_offset(p4d, address);46 50 if (pud_none_or_clear_bad(pud)) 47 51 return 1; 48 52 pmd = pmd_offset(pud, address);