x86/mm: Fix kern_addr_valid() to cope with existing but not present entries
[sfrench/cifs-2.6.git] / arch / x86 / mm / init_64.c
index ddeaba947eb3d2a5c093c370dde55be0dd1884ff..879886c6cc5379876741319bb6f97c599e75d1e7 100644 (file)
@@ -1433,18 +1433,18 @@ int kern_addr_valid(unsigned long addr)
                return 0;
 
        p4d = p4d_offset(pgd, addr);
-       if (p4d_none(*p4d))
+       if (!p4d_present(*p4d))
                return 0;
 
        pud = pud_offset(p4d, addr);
-       if (pud_none(*pud))
+       if (!pud_present(*pud))
                return 0;
 
        if (pud_large(*pud))
                return pfn_valid(pud_pfn(*pud));
 
        pmd = pmd_offset(pud, addr);
-       if (pmd_none(*pmd))
+       if (!pmd_present(*pmd))
                return 0;
 
        if (pmd_large(*pmd))