aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/hash_utils_64.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-02-21 01:22:55 -0500
committerPaul Mackerras <paulus@samba.org>2006-02-23 19:36:18 -0500
commit337a7128dbe68ebe7627b6f954cb32d30d7b11c6 (patch)
tree6189f61386f3be72cffab14ed1b42a508ef1793c /arch/powerpc/mm/hash_utils_64.c
parentbd6ef57e08d6cce32e93f9fc7b93d361b6a7884f (diff)
[PATCH] powerpc: Only calculate htab_size in one place for kexec
For kexec we need to know the size of the MMU hash table. Currently we calculate the size once in the htab code, and then twice more in the kexec code, once using htab_hash_mask and once using ppc64_pft_size. On some machines the ppc64_pft_size calculation is broken because ppc64_pft_size is not set. So we need to fix the second calculation, but better still we should just calculate the size once and use it everywhere else. Tested on Power5 LPAR, Power4 non-LPAR and Power3. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/mm/hash_utils_64.c')
-rw-r--r--arch/powerpc/mm/hash_utils_64.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 149351a84b94..b1f614c612dd 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -88,6 +88,7 @@ static unsigned long _SDR1;
88struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT]; 88struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT];
89 89
90hpte_t *htab_address; 90hpte_t *htab_address;
91unsigned long htab_size_bytes;
91unsigned long htab_hash_mask; 92unsigned long htab_hash_mask;
92int mmu_linear_psize = MMU_PAGE_4K; 93int mmu_linear_psize = MMU_PAGE_4K;
93int mmu_virtual_psize = MMU_PAGE_4K; 94int mmu_virtual_psize = MMU_PAGE_4K;
@@ -399,7 +400,7 @@ void create_section_mapping(unsigned long start, unsigned long end)
399 400
400void __init htab_initialize(void) 401void __init htab_initialize(void)
401{ 402{
402 unsigned long table, htab_size_bytes; 403 unsigned long table;
403 unsigned long pteg_count; 404 unsigned long pteg_count;
404 unsigned long mode_rw; 405 unsigned long mode_rw;
405 unsigned long base = 0, size = 0; 406 unsigned long base = 0, size = 0;