diff options
author | Marcelo Tosatti <marcelo@kvack.org> | 2006-05-05 16:09:29 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-05-09 02:03:11 -0400 |
commit | c51e078f82096a7d35ac8ec2416272e843a0e1c4 (patch) | |
tree | 211fa222b7f32a6ca08624c2e32c6b5d2c89ded5 /arch/ppc/kernel | |
parent | e4de00215c3af02116db3d486bf53700dfe10619 (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.S | 4 |
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 |
357 | DataStoreTLBMiss: | 357 | DataStoreTLBMiss: |
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 |