aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorTrent Piepho <tpiepho@freescale.com>2008-12-08 22:34:55 -0500
committerKumar Gala <galak@kernel.crashing.org>2009-01-07 16:33:06 -0500
commit19f5465e823858a2f0b0e9a92e52816ba3ee70bb (patch)
tree4e4112f7d8e5a3699df5e808a83ac9eed44bd8d7 /arch/powerpc/kernel
parent565f37642c78754a85efe6c20a4a15e18ed21f07 (diff)
powerpc/fsl-booke: Don't hard-code size of struct tlbcam
Some assembly code in head_fsl_booke.S hard-coded the size of struct tlbcam to 20 when it indexed the TLBCAM table. Anyone changing the size of struct tlbcam would not know to expect that. The kernel already has a system to get the size of C structures into assembly language files, asm-offsets, so let's use it. The definition of the struct gets moved to a header, so that asm-offsets.c can include it. Signed-off-by: Trent Piepho <tpiepho@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/asm-offsets.c7
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S2
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 661d07d2146b..06958da94f17 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -56,6 +56,10 @@
56#include "head_booke.h" 56#include "head_booke.h"
57#endif 57#endif
58 58
59#if defined(CONFIG_FSL_BOOKE)
60#include "../mm/mmu_decl.h"
61#endif
62
59int main(void) 63int main(void)
60{ 64{
61 DEFINE(THREAD, offsetof(struct task_struct, thread)); 65 DEFINE(THREAD, offsetof(struct task_struct, thread));
@@ -384,6 +388,9 @@ int main(void)
384 DEFINE(PGD_T_LOG2, PGD_T_LOG2); 388 DEFINE(PGD_T_LOG2, PGD_T_LOG2);
385 DEFINE(PTE_T_LOG2, PTE_T_LOG2); 389 DEFINE(PTE_T_LOG2, PTE_T_LOG2);
386#endif 390#endif
391#ifdef CONFIG_FSL_BOOKE
392 DEFINE(TLBCAM_SIZE, sizeof(struct tlbcam));
393#endif
387 394
388 return 0; 395 return 0;
389} 396}
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 11b549acc034..805f28d30e49 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -909,7 +909,7 @@ KernelSPE:
909_GLOBAL(loadcam_entry) 909_GLOBAL(loadcam_entry)
910 lis r4,TLBCAM@ha 910 lis r4,TLBCAM@ha
911 addi r4,r4,TLBCAM@l 911 addi r4,r4,TLBCAM@l
912 mulli r5,r3,20 912 mulli r5,r3,TLBCAM_SIZE
913 add r3,r5,r4 913 add r3,r5,r4
914 lwz r4,0(r3) 914 lwz r4,0(r3)
915 mtspr SPRN_MAS0,r4 915 mtspr SPRN_MAS0,r4