aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2007-12-06 14:11:04 -0500
committerKumar Gala <galak@kernel.crashing.org>2007-12-06 14:11:04 -0500
commitbee86f14d51a5a9a3b1897e301da1e415df0ba23 (patch)
tree28aaf0db44a4d6f2c8f3f7162200a05d590f4e98
parent7e1fb765c613298d861f80fa18af26df87a4ec19 (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.c3
-rw-r--r--arch/powerpc/kernel/head_32.S2
-rw-r--r--arch/powerpc/kernel/head_40x.S2
-rw-r--r--arch/powerpc/kernel/head_44x.S2
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S2
-rw-r--r--include/asm-powerpc/pgtable-ppc32.h5
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
1313swapper_pg_dir: 1313swapper_pg_dir:
1314 .space 4096 1314 .space PGD_TABLE_SIZE
1315 1315
1316 .globl intercept_table 1316 .globl intercept_table
1317intercept_table: 1317intercept_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
996swapper_pg_dir: 996swapper_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
724swapper_pg_dir: 724swapper_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
1037swapper_pg_dir: 1037swapper_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))