|
|
@@ -576,6 +576,19 @@ static inline int pte_same(pte_t a, pte_t b)
|
|
|
return pte_val(a) == pte_val(b);
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_NUMA_BALANCING
|
|
|
+static inline int pte_protnone(pte_t pte)
|
|
|
+{
|
|
|
+ return pte_present(pte) && !(pte_val(pte) & _PAGE_READ);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int pmd_protnone(pmd_t pmd)
|
|
|
+{
|
|
|
+ /* pmd_large(pmd) implies pmd_present(pmd) */
|
|
|
+ return pmd_large(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_READ);
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
static inline pgste_t pgste_get_lock(pte_t *ptep)
|
|
|
{
|
|
|
unsigned long new = 0;
|