summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/pgtable.h
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2014-09-16 03:28:16 +0400
committerBrian Norris <computersforpeace@gmail.com>2014-09-16 03:28:16 +0400
commit7622d4905a038961da6b1c6c3fe4be6c3dad7ef9 (patch)
treecce9f4bc0ef2de31cee8e06e2cd6358dd51fa9c5 /arch/x86/include/asm/pgtable.h
parent5b49ab3e03f68eb49db4bce6290e5707b7f6c6f3 (diff)
parent9e82bf014195d6f0054982c463575cdce24292be (diff)
downloadlinux-7622d4905a038961da6b1c6c3fe4be6c3dad7ef9.tar.xz
Merge tag 'v3.17-rc5' from upstream
Diffstat (limited to 'arch/x86/include/asm/pgtable.h')
-rw-r--r--arch/x86/include/asm/pgtable.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 0ec056012618..aa97a070f09f 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -131,8 +131,13 @@ static inline int pte_exec(pte_t pte)
static inline int pte_special(pte_t pte)
{
- return (pte_flags(pte) & (_PAGE_PRESENT|_PAGE_SPECIAL)) ==
- (_PAGE_PRESENT|_PAGE_SPECIAL);
+ /*
+ * See CONFIG_NUMA_BALANCING pte_numa in include/asm-generic/pgtable.h.
+ * On x86 we have _PAGE_BIT_NUMA == _PAGE_BIT_GLOBAL+1 ==
+ * __PAGE_BIT_SOFTW1 == _PAGE_BIT_SPECIAL.
+ */
+ return (pte_flags(pte) & _PAGE_SPECIAL) &&
+ (pte_flags(pte) & (_PAGE_PRESENT|_PAGE_PROTNONE));
}
static inline unsigned long pte_pfn(pte_t pte)