aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/kernel
diff options
context:
space:
mode:
authorMarcelo Tosatti <marcelo@kvack.org>2006-05-05 16:09:29 -0400
committerPaul Mackerras <paulus@samba.org>2006-05-09 02:03:11 -0400
commitc51e078f82096a7d35ac8ec2416272e843a0e1c4 (patch)
tree211fa222b7f32a6ca08624c2e32c6b5d2c89ded5 /arch/ppc/kernel
parente4de00215c3af02116db3d486bf53700dfe10619 (diff)
[PATCH] ppc32/8xx: Fix r3 trashing due to 8MB TLB page instantiation
Instantiation of 8MB pages on the TLB cache for the kernel static mapping trashes r3 register on !CONFIG_8xx_CPU6 configurations. This ensures r3 gets saved and restored. Signed-off-by: Marcelo Tosatti <marcelo@kvack.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc/kernel')
-rw-r--r--arch/ppc/kernel/head_8xx.S4
1 files changed, 0 insertions, 4 deletions
diff --git a/arch/ppc/kernel/head_8xx.S b/arch/ppc/kernel/head_8xx.S
index ec53c7d65f2b..7a2f20583be4 100644
--- a/arch/ppc/kernel/head_8xx.S
+++ b/arch/ppc/kernel/head_8xx.S
@@ -355,9 +355,7 @@ InstructionTLBMiss:
355 355
356 . = 0x1200 356 . = 0x1200
357DataStoreTLBMiss: 357DataStoreTLBMiss:
358#ifdef CONFIG_8xx_CPU6
359 stw r3, 8(r0) 358 stw r3, 8(r0)
360#endif
361 DO_8xx_CPU6(0x3f80, r3) 359 DO_8xx_CPU6(0x3f80, r3)
362 mtspr SPRN_M_TW, r10 /* Save a couple of working registers */ 360 mtspr SPRN_M_TW, r10 /* Save a couple of working registers */
363 mfcr r10 361 mfcr r10
@@ -417,9 +415,7 @@ DataStoreTLBMiss:
417 lwz r11, 0(r0) 415 lwz r11, 0(r0)
418 mtcr r11 416 mtcr r11
419 lwz r11, 4(r0) 417 lwz r11, 4(r0)
420#ifdef CONFIG_8xx_CPU6
421 lwz r3, 8(r0) 418 lwz r3, 8(r0)
422#endif
423 rfi 419 rfi
424 420
425/* This is an instruction TLB error on the MPC8xx. This could be due 421/* This is an instruction TLB error on the MPC8xx. This could be due