]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/powerpc/include/asm/pgtable.h
mm: remove misleading ARCH_USES_NUMA_PROT_NONE
[karo-tx-linux.git] / arch / powerpc / include / asm / pgtable.h
index d98c1ecc32665444c2b046cf57952f45bdfea9fa..f60d4ea8b50c8f3bd32f3886a7fb24b9c99f14df 100644 (file)
@@ -38,10 +38,9 @@ static inline int pte_none(pte_t pte)                { return (pte_val(pte) & ~_PTE_NONE_MASK)
 static inline pgprot_t pte_pgprot(pte_t pte)   { return __pgprot(pte_val(pte) & PAGE_PROT_BITS); }
 
 #ifdef CONFIG_NUMA_BALANCING
-
 static inline int pte_present(pte_t pte)
 {
-       return pte_val(pte) & (_PAGE_PRESENT | _PAGE_NUMA);
+       return pte_val(pte) & _PAGE_NUMA_MASK;
 }
 
 #define pte_present_nonuma pte_present_nonuma
@@ -50,37 +49,6 @@ static inline int pte_present_nonuma(pte_t pte)
        return pte_val(pte) & (_PAGE_PRESENT);
 }
 
-#define pte_numa pte_numa
-static inline int pte_numa(pte_t pte)
-{
-       return (pte_val(pte) &
-               (_PAGE_NUMA|_PAGE_PRESENT)) == _PAGE_NUMA;
-}
-
-#define pte_mknonnuma pte_mknonnuma
-static inline pte_t pte_mknonnuma(pte_t pte)
-{
-       pte_val(pte) &= ~_PAGE_NUMA;
-       pte_val(pte) |=  _PAGE_PRESENT | _PAGE_ACCESSED;
-       return pte;
-}
-
-#define pte_mknuma pte_mknuma
-static inline pte_t pte_mknuma(pte_t pte)
-{
-       /*
-        * We should not set _PAGE_NUMA on non present ptes. Also clear the
-        * present bit so that hash_page will return 1 and we collect this
-        * as numa fault.
-        */
-       if (pte_present(pte)) {
-               pte_val(pte) |= _PAGE_NUMA;
-               pte_val(pte) &= ~_PAGE_PRESENT;
-       } else
-               VM_BUG_ON(1);
-       return pte;
-}
-
 #define ptep_set_numa ptep_set_numa
 static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr,
                                 pte_t *ptep)
@@ -92,12 +60,6 @@ static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr,
        return;
 }
 
-#define pmd_numa pmd_numa
-static inline int pmd_numa(pmd_t pmd)
-{
-       return pte_numa(pmd_pte(pmd));
-}
-
 #define pmdp_set_numa pmdp_set_numa
 static inline void pmdp_set_numa(struct mm_struct *mm, unsigned long addr,
                                 pmd_t *pmdp)
@@ -109,16 +71,21 @@ static inline void pmdp_set_numa(struct mm_struct *mm, unsigned long addr,
        return;
 }
 
-#define pmd_mknonnuma pmd_mknonnuma
-static inline pmd_t pmd_mknonnuma(pmd_t pmd)
+/*
+ * Generic NUMA pte helpers expect pteval_t and pmdval_t types to exist
+ * which was inherited from x86. For the purposes of powerpc pte_basic_t and
+ * pmd_t are equivalent
+ */
+#define pteval_t pte_basic_t
+#define pmdval_t pmd_t
+static inline pteval_t ptenuma_flags(pte_t pte)
 {
-       return pte_pmd(pte_mknonnuma(pmd_pte(pmd)));
+       return pte_val(pte) & _PAGE_NUMA_MASK;
 }
 
-#define pmd_mknuma pmd_mknuma
-static inline pmd_t pmd_mknuma(pmd_t pmd)
+static inline pmdval_t pmdnuma_flags(pmd_t pmd)
 {
-       return pte_pmd(pte_mknuma(pmd_pte(pmd)));
+       return pmd_val(pmd) & _PAGE_NUMA_MASK;
 }
 
 # else