x86: make pgd/pud/pmd/pte_none consistent
The _none test is done differently for every level of the pagetable.
Standardize them by:
1: Use the native_X_val to extract the raw entry, with no need to go
via paravirt_ops, diff -r 1d0646d0d319 arch/x86/include/asm/pgtable.h, and
2: Compare with 0 rather than using a boolean !, since they are actually values
and not booleans.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index c811d76..a80a956 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -465,7 +465,7 @@
{
/* Only check low word on 32-bit platforms, since it might be
out of sync with upper half. */
- return !(unsigned long)native_pmd_val(pmd);
+ return (unsigned long)native_pmd_val(pmd) == 0;
}
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
@@ -530,7 +530,7 @@
#if PAGETABLE_LEVELS > 2
static inline int pud_none(pud_t pud)
{
- return pud_val(pud) == 0;
+ return native_pud_val(pud) == 0;
}
static inline int pud_present(pud_t pud)
@@ -605,7 +605,7 @@
static inline int pgd_none(pgd_t pgd)
{
- return !pgd_val(pgd);
+ return !native_pgd_val(pgd);
}
#endif /* PAGETABLE_LEVELS > 3 */