diff options
author | Ian Campbell <ijc@hellion.org.uk> | 2008-02-09 17:24:09 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-02-09 17:24:09 -0500 |
commit | 551889a6e2a24a9c06fd453ea03b57b7746ffdc0 (patch) | |
tree | d906bbc4e4a96e243a14416bf02feb7a4ffd4d7a /include/asm-x86 | |
parent | 185c045c245f46485ad8bbd8cc1100e986ff3f13 (diff) |
x86: construct 32-bit boot time page tables in native format.
Specifically the boot time page tables in a CONFIG_X86_PAE=y enabled
kernel are in PAE format.
early_ioremap is updated to use the standard page table accessors.
Clear any mappings beyond max_low_pfn from the boot page tables in
native_pagetable_setup_start because the initial mappings can extend
beyond the range of physical memory and into the vmalloc area.
Derived from patches by Eric Biederman and H. Peter Anvin.
[ jeremy@goop.org: PAE swapper_pg_dir needs to be page-sized fix ]
Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Mika Penttilä <mika.penttila@kolumbus.fi>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86')
-rw-r--r-- | include/asm-x86/page_32.h | 1 | ||||
-rw-r--r-- | include/asm-x86/pgtable_32.h | 4 |
2 files changed, 0 insertions, 5 deletions
diff --git a/include/asm-x86/page_32.h b/include/asm-x86/page_32.h index 984998a3074..5f7257fd589 100644 --- a/include/asm-x86/page_32.h +++ b/include/asm-x86/page_32.h | |||
@@ -48,7 +48,6 @@ typedef unsigned long pgprotval_t; | |||
48 | typedef unsigned long phys_addr_t; | 48 | typedef unsigned long phys_addr_t; |
49 | 49 | ||
50 | typedef union { pteval_t pte, pte_low; } pte_t; | 50 | typedef union { pteval_t pte, pte_low; } pte_t; |
51 | typedef pte_t boot_pte_t; | ||
52 | 51 | ||
53 | #endif /* __ASSEMBLY__ */ | 52 | #endif /* __ASSEMBLY__ */ |
54 | #endif /* CONFIG_X86_PAE */ | 53 | #endif /* CONFIG_X86_PAE */ |
diff --git a/include/asm-x86/pgtable_32.h b/include/asm-x86/pgtable_32.h index 80dd438642f..a842c7222b1 100644 --- a/include/asm-x86/pgtable_32.h +++ b/include/asm-x86/pgtable_32.h | |||
@@ -52,10 +52,6 @@ void paging_init(void); | |||
52 | #define USER_PGD_PTRS (PAGE_OFFSET >> PGDIR_SHIFT) | 52 | #define USER_PGD_PTRS (PAGE_OFFSET >> PGDIR_SHIFT) |
53 | #define KERNEL_PGD_PTRS (PTRS_PER_PGD-USER_PGD_PTRS) | 53 | #define KERNEL_PGD_PTRS (PTRS_PER_PGD-USER_PGD_PTRS) |
54 | 54 | ||
55 | #define TWOLEVEL_PGDIR_SHIFT 22 | ||
56 | #define BOOT_USER_PGD_PTRS (__PAGE_OFFSET >> TWOLEVEL_PGDIR_SHIFT) | ||
57 | #define BOOT_KERNEL_PGD_PTRS (1024-BOOT_USER_PGD_PTRS) | ||
58 | |||
59 | /* Just any arbitrary offset to the start of the vmalloc VM area: the | 55 | /* Just any arbitrary offset to the start of the vmalloc VM area: the |
60 | * current 8MB value just means that there will be a 8MB "hole" after the | 56 | * current 8MB value just means that there will be a 8MB "hole" after the |
61 | * physical memory until the kernel virtual memory starts. That means that | 57 | * physical memory until the kernel virtual memory starts. That means that |