diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2013-01-29 17:59:09 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-01-29 18:10:15 -0500 |
commit | de65d816aa44f9ddd79861ae21d75010cc1fd003 (patch) | |
tree | 04a637a43b2e52a733d0dcb7595a47057571e7da /arch/x86/include/asm/pgtable.h | |
parent | 9710f581bb4c35589ac046b0cfc0deb7f369fc85 (diff) | |
parent | 5dcd14ecd41ea2b3ae3295a9b30d98769d52165f (diff) |
Merge remote-tracking branch 'origin/x86/boot' into x86/mm2
Coming patches to x86/mm2 require the changes and advanced baseline in
x86/boot.
Resolved Conflicts:
arch/x86/kernel/setup.c
mm/nobootmem.c
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/include/asm/pgtable.h')
-rw-r--r-- | arch/x86/include/asm/pgtable.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 6991a3e1bf81..3c7c6985045d 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h | |||
@@ -404,7 +404,14 @@ static inline int pte_same(pte_t a, pte_t b) | |||
404 | 404 | ||
405 | static inline int pte_present(pte_t a) | 405 | static inline int pte_present(pte_t a) |
406 | { | 406 | { |
407 | return pte_flags(a) & (_PAGE_PRESENT | _PAGE_PROTNONE); | 407 | return pte_flags(a) & (_PAGE_PRESENT | _PAGE_PROTNONE | |
408 | _PAGE_NUMA); | ||
409 | } | ||
410 | |||
411 | #define pte_accessible pte_accessible | ||
412 | static inline int pte_accessible(pte_t a) | ||
413 | { | ||
414 | return pte_flags(a) & _PAGE_PRESENT; | ||
408 | } | 415 | } |
409 | 416 | ||
410 | static inline int pte_hidden(pte_t pte) | 417 | static inline int pte_hidden(pte_t pte) |
@@ -420,7 +427,8 @@ static inline int pmd_present(pmd_t pmd) | |||
420 | * the _PAGE_PSE flag will remain set at all times while the | 427 | * the _PAGE_PSE flag will remain set at all times while the |
421 | * _PAGE_PRESENT bit is clear). | 428 | * _PAGE_PRESENT bit is clear). |
422 | */ | 429 | */ |
423 | return pmd_flags(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE); | 430 | return pmd_flags(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE | |
431 | _PAGE_NUMA); | ||
424 | } | 432 | } |
425 | 433 | ||
426 | static inline int pmd_none(pmd_t pmd) | 434 | static inline int pmd_none(pmd_t pmd) |
@@ -479,6 +487,11 @@ static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address) | |||
479 | 487 | ||
480 | static inline int pmd_bad(pmd_t pmd) | 488 | static inline int pmd_bad(pmd_t pmd) |
481 | { | 489 | { |
490 | #ifdef CONFIG_NUMA_BALANCING | ||
491 | /* pmd_numa check */ | ||
492 | if ((pmd_flags(pmd) & (_PAGE_NUMA|_PAGE_PRESENT)) == _PAGE_NUMA) | ||
493 | return 0; | ||
494 | #endif | ||
482 | return (pmd_flags(pmd) & ~_PAGE_USER) != _KERNPG_TABLE; | 495 | return (pmd_flags(pmd) & ~_PAGE_USER) != _KERNPG_TABLE; |
483 | } | 496 | } |
484 | 497 | ||