diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2007-12-06 14:11:04 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-12-06 14:11:04 -0500 |
commit | bee86f14d51a5a9a3b1897e301da1e415df0ba23 (patch) | |
tree | 28aaf0db44a4d6f2c8f3f7162200a05d590f4e98 | |
parent | 7e1fb765c613298d861f80fa18af26df87a4ec19 (diff) |
[POWERPC] Fix swapper_pg_dir size when CONFIG_PTE_64BIT=y on FSL_BOOKE
The size of swapper_pg_dir is 8k instead of 4k when using 64-bit PTEs
(CONFIG_PTE_64BIT).
This was reported by Cedric Hombourger <chombourger@gmail.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/kernel/asm-offsets.c | 3 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_32.S | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_40x.S | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_44x.S | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_fsl_booke.S | 2 | ||||
-rw-r--r-- | include/asm-powerpc/pgtable-ppc32.h | 5 |
6 files changed, 10 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index d67bcd84f329..ed083feaf6f9 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c | |||
@@ -326,8 +326,7 @@ int main(void) | |||
326 | DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START)); | 326 | DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START)); |
327 | #endif | 327 | #endif |
328 | 328 | ||
329 | #ifdef CONFIG_PPC64 | ||
330 | DEFINE(PGD_TABLE_SIZE, PGD_TABLE_SIZE); | 329 | DEFINE(PGD_TABLE_SIZE, PGD_TABLE_SIZE); |
331 | #endif | 330 | |
332 | return 0; | 331 | return 0; |
333 | } | 332 | } |
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index a5b13ae7fd20..0f4fac512020 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -1311,7 +1311,7 @@ empty_zero_page: | |||
1311 | 1311 | ||
1312 | .globl swapper_pg_dir | 1312 | .globl swapper_pg_dir |
1313 | swapper_pg_dir: | 1313 | swapper_pg_dir: |
1314 | .space 4096 | 1314 | .space PGD_TABLE_SIZE |
1315 | 1315 | ||
1316 | .globl intercept_table | 1316 | .globl intercept_table |
1317 | intercept_table: | 1317 | intercept_table: |
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S index cfefc2df8f2a..8552e67e3a8b 100644 --- a/arch/powerpc/kernel/head_40x.S +++ b/arch/powerpc/kernel/head_40x.S | |||
@@ -994,7 +994,7 @@ empty_zero_page: | |||
994 | .space 4096 | 994 | .space 4096 |
995 | .globl swapper_pg_dir | 995 | .globl swapper_pg_dir |
996 | swapper_pg_dir: | 996 | swapper_pg_dir: |
997 | .space 4096 | 997 | .space PGD_TABLE_SIZE |
998 | 998 | ||
999 | 999 | ||
1000 | /* Stack for handling critical exceptions from kernel mode */ | 1000 | /* Stack for handling critical exceptions from kernel mode */ |
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S index 409db6123924..56aba84c1f6e 100644 --- a/arch/powerpc/kernel/head_44x.S +++ b/arch/powerpc/kernel/head_44x.S | |||
@@ -722,7 +722,7 @@ empty_zero_page: | |||
722 | */ | 722 | */ |
723 | .globl swapper_pg_dir | 723 | .globl swapper_pg_dir |
724 | swapper_pg_dir: | 724 | swapper_pg_dir: |
725 | .space 8192 | 725 | .space PGD_TABLE_SIZE |
726 | 726 | ||
727 | /* Reserved 4k for the critical exception stack & 4k for the machine | 727 | /* Reserved 4k for the critical exception stack & 4k for the machine |
728 | * check stack per CPU for kernel mode exceptions */ | 728 | * check stack per CPU for kernel mode exceptions */ |
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S index 4b9822728aea..7aecb39a5a45 100644 --- a/arch/powerpc/kernel/head_fsl_booke.S +++ b/arch/powerpc/kernel/head_fsl_booke.S | |||
@@ -1035,7 +1035,7 @@ empty_zero_page: | |||
1035 | .space 4096 | 1035 | .space 4096 |
1036 | .globl swapper_pg_dir | 1036 | .globl swapper_pg_dir |
1037 | swapper_pg_dir: | 1037 | swapper_pg_dir: |
1038 | .space 4096 | 1038 | .space PGD_TABLE_SIZE |
1039 | 1039 | ||
1040 | /* Reserved 4k for the critical exception stack & 4k for the machine | 1040 | /* Reserved 4k for the critical exception stack & 4k for the machine |
1041 | * check stack per CPU for kernel mode exceptions */ | 1041 | * check stack per CPU for kernel mode exceptions */ |
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h index fea2d8ff1e73..d1332bbcbd9b 100644 --- a/include/asm-powerpc/pgtable-ppc32.h +++ b/include/asm-powerpc/pgtable-ppc32.h | |||
@@ -86,6 +86,11 @@ extern int icache_44x_need_flush; | |||
86 | * entries per page directory level: our page-table tree is two-level, so | 86 | * entries per page directory level: our page-table tree is two-level, so |
87 | * we don't really have any PMD directory. | 87 | * we don't really have any PMD directory. |
88 | */ | 88 | */ |
89 | #ifndef __ASSEMBLY__ | ||
90 | #define PTE_TABLE_SIZE (sizeof(pte_t) << PTE_SHIFT) | ||
91 | #define PGD_TABLE_SIZE (sizeof(pgd_t) << (32 - PGDIR_SHIFT)) | ||
92 | #endif /* __ASSEMBLY__ */ | ||
93 | |||
89 | #define PTRS_PER_PTE (1 << PTE_SHIFT) | 94 | #define PTRS_PER_PTE (1 << PTE_SHIFT) |
90 | #define PTRS_PER_PMD 1 | 95 | #define PTRS_PER_PMD 1 |
91 | #define PTRS_PER_PGD (1 << (32 - PGDIR_SHIFT)) | 96 | #define PTRS_PER_PGD (1 << (32 - PGDIR_SHIFT)) |