The PAT bit gets relocated to bit 12 when PUD and PMD mappings are used. This bit 12, however, is not covered by PTE_FLAGS_MASK, which is corrently used for masking pfn and flags for all cases.
Patch 1/4-2/4 make changes necessary for patch 3/4 to use P?D_PAGE_MASK. Patch 3/4 fixes pud/pmd interfaces to handle the PAT bit when PUD and PMD mappings are used. Patch 3/4 fixes /sys/kernel/debug/kernel_page_tables to show the PAT bit properly. Note, the PAT bit is first enabled in 4.2-rc1 with WT mappings. --- v2: - Change p?n_pfn() to handle the PAT bit. (Juergen Gross) - Mask pfn and flags with P?D_PAGE_MASK. (Juergen Gross) - Change p?d_page_vaddr() and p?d_page() to handle the PAT bit. --- Toshi Kani (4): 1/4 x86/vdso32: Define PGTABLE_LEVELS to 32bit VDSO 2/4 x86, asm: Move PUD_PAGE macros to page_types.h 3/4 x86: Fix pud/pmd interfaces to handle large PAT bit 4/4 x86, mm: Fix page table dump to show PAT bit --- 4fa1ff9a08c...dd58e3d52618b00dd768de1753c35611906fcbee --stat arch/x86/entry/vdso/vdso32/vclock_gettime.c | 2 ++ arch/x86/include/asm/page_64_types.h | 3 --- arch/x86/include/asm/page_types.h | 3 +++ arch/x86/include/asm/pgtable.h | 14 +++++----- arch/x86/include/asm/pgtable_types.h | 40 ++++++++++++++++++++++++++--- arch/x86/mm/dump_pagetables.c | 39 +++++++++++++++------------- 6 files changed, 70 insertions(+), 31 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

