arm64: Don't report clear pmds and puds as huge
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / mm / hugetlbpage.c
index 2de9d2e59d96808325829a37bca559c2ddb48a1c..0eeb4f0930a08910b20320fadb765bab25106fc4 100644 (file)
@@ -40,13 +40,13 @@ int huge_pmd_unshare(struct mm_struct *mm, unsigned long *addr, pte_t *ptep)
 
 int pmd_huge(pmd_t pmd)
 {
-       return !(pmd_val(pmd) & PMD_TABLE_BIT);
+       return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT);
 }
 
 int pud_huge(pud_t pud)
 {
 #ifndef __PAGETABLE_PMD_FOLDED
-       return !(pud_val(pud) & PUD_TABLE_BIT);
+       return pud_val(pud) && !(pud_val(pud) & PUD_TABLE_BIT);
 #else
        return 0;
 #endif