From: blaisorblade@yahoo.it _PAGE_FILE does not indicate whether a file is in page / swap cache, it is set just for non-linear PTE's. Correct the comment for i386, x86_64, UML. Also clearify _PAGE_NONE. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Hugh Dickins Signed-off-by: Andrew Morton --- include/asm-i386/pgtable.h | 10 +++++----- include/asm-um/pgtable.h | 8 +++++--- include/asm-x86_64/pgtable.h | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff -puN include/asm-i386/pgtable.h~correct-_page_file-comment include/asm-i386/pgtable.h --- 25/include/asm-i386/pgtable.h~correct-_page_file-comment Wed Aug 17 14:52:01 2005 +++ 25-akpm/include/asm-i386/pgtable.h Wed Aug 17 14:52:01 2005 @@ -86,9 +86,7 @@ void paging_init(void); #endif /* - * The 4MB page is guessing.. Detailed in the infamous "Chapter H" - * of the Pentium details, but assuming intel did the straightforward - * thing, this bit set in the page directory entry just means that + * _PAGE_PSE set in the page directory entry just means that * the page directory entry points directly to a 4MB-aligned block of * memory. */ @@ -119,8 +117,10 @@ void paging_init(void); #define _PAGE_UNUSED2 0x400 #define _PAGE_UNUSED3 0x800 -#define _PAGE_FILE 0x040 /* set:pagecache unset:swap */ -#define _PAGE_PROTNONE 0x080 /* If not present */ +/* If _PAGE_PRESENT is clear, we use these: */ +#define _PAGE_FILE 0x040 /* nonlinear file mapping, saved PTE; unset:swap */ +#define _PAGE_PROTNONE 0x080 /* if the user mapped it with PROT_NONE; + pte_present gives true */ #ifdef CONFIG_X86_PAE #define _PAGE_NX (1ULL<<_PAGE_BIT_NX) #else diff -puN include/asm-um/pgtable.h~correct-_page_file-comment include/asm-um/pgtable.h --- 25/include/asm-um/pgtable.h~correct-_page_file-comment Wed Aug 17 14:52:01 2005 +++ 25-akpm/include/asm-um/pgtable.h Wed Aug 17 14:52:01 2005 @@ -16,13 +16,15 @@ #define _PAGE_PRESENT 0x001 #define _PAGE_NEWPAGE 0x002 -#define _PAGE_NEWPROT 0x004 -#define _PAGE_FILE 0x008 /* set:pagecache unset:swap */ -#define _PAGE_PROTNONE 0x010 /* If not present */ +#define _PAGE_NEWPROT 0x004 #define _PAGE_RW 0x020 #define _PAGE_USER 0x040 #define _PAGE_ACCESSED 0x080 #define _PAGE_DIRTY 0x100 +/* If _PAGE_PRESENT is clear, we use these: */ +#define _PAGE_FILE 0x008 /* nonlinear file mapping, saved PTE; unset:swap */ +#define _PAGE_PROTNONE 0x010 /* if the user mapped it with PROT_NONE; + pte_present gives true */ #ifdef CONFIG_3_LEVEL_PGTABLES #include "asm/pgtable-3level.h" diff -puN include/asm-x86_64/pgtable.h~correct-_page_file-comment include/asm-x86_64/pgtable.h --- 25/include/asm-x86_64/pgtable.h~correct-_page_file-comment Wed Aug 17 14:52:01 2005 +++ 25-akpm/include/asm-x86_64/pgtable.h Wed Aug 17 14:52:01 2005 @@ -143,7 +143,7 @@ extern inline void pgd_clear (pgd_t * pg #define _PAGE_ACCESSED 0x020 #define _PAGE_DIRTY 0x040 #define _PAGE_PSE 0x080 /* 2MB page */ -#define _PAGE_FILE 0x040 /* set:pagecache, unset:swap */ +#define _PAGE_FILE 0x040 /* nonlinear file mapping, saved PTE; unset:swap */ #define _PAGE_GLOBAL 0x100 /* Global TLB entry */ #define _PAGE_PROTNONE 0x080 /* If not present */ _