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 | |
| 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>
| -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 |
