diff options
author | Christophe Leroy <christophe.leroy@c-s.fr> | 2020-05-21 16:56:04 +0000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2020-05-28 23:24:36 +1000 |
commit | 3aacaa719b7bf135551cabde2480e8f7bfdf7c7d (patch) | |
tree | 793cf6ad8d6d55f646dd1a67a2d20e07cfd4cbdc /arch/powerpc/kernel | |
parent | 797f4016f6da4a90ac83e32b213b68ff7be3812b (diff) | |
download | linux-stable-3aacaa719b7bf135551cabde2480e8f7bfdf7c7d.tar.gz linux-stable-3aacaa719b7bf135551cabde2480e8f7bfdf7c7d.tar.bz2 linux-stable-3aacaa719b7bf135551cabde2480e8f7bfdf7c7d.zip |
powerpc/40x: Don't save CR in SPRN_SPRG_SCRATCH6
We have r12 available, use it to keep CR around and don't
save it in SPRN_SPRG_SCRATCH6.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/019f314a98c107c4ca46e46c1cf402e9a44114a7.1590079969.git.christophe.leroy@csgroup.eu
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/head_40x.S | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S index b584e81f6d19..a22a8209971b 100644 --- a/arch/powerpc/kernel/head_40x.S +++ b/arch/powerpc/kernel/head_40x.S @@ -254,9 +254,8 @@ _ENTRY(saved_ksp_limit) mtspr SPRN_SPRG_SCRATCH1, r11 mtspr SPRN_SPRG_SCRATCH3, r12 mtspr SPRN_SPRG_SCRATCH4, r9 - mfcr r11 + mfcr r12 mfspr r9, SPRN_PID - mtspr SPRN_SPRG_SCRATCH6, r11 mtspr SPRN_SPRG_SCRATCH5, r9 mfspr r10, SPRN_DEAR /* Get faulting address */ @@ -323,9 +322,8 @@ _ENTRY(saved_ksp_limit) * and call the heavyweights to help us out. */ mfspr r9, SPRN_SPRG_SCRATCH5 - mfspr r11, SPRN_SPRG_SCRATCH6 mtspr SPRN_PID, r9 - mtcr r11 + mtcr r12 mfspr r9, SPRN_SPRG_SCRATCH4 mfspr r12, SPRN_SPRG_SCRATCH3 mfspr r11, SPRN_SPRG_SCRATCH1 @@ -341,9 +339,8 @@ _ENTRY(saved_ksp_limit) mtspr SPRN_SPRG_SCRATCH1, r11 mtspr SPRN_SPRG_SCRATCH3, r12 mtspr SPRN_SPRG_SCRATCH4, r9 - mfcr r11 + mfcr r12 mfspr r9, SPRN_PID - mtspr SPRN_SPRG_SCRATCH6, r11 mtspr SPRN_SPRG_SCRATCH5, r9 mfspr r10, SPRN_SRR0 /* Get faulting address */ @@ -410,9 +407,8 @@ _ENTRY(saved_ksp_limit) * and call the heavyweights to help us out. */ mfspr r9, SPRN_SPRG_SCRATCH5 - mfspr r11, SPRN_SPRG_SCRATCH6 mtspr SPRN_PID, r9 - mtcr r11 + mtcr r12 mfspr r9, SPRN_SPRG_SCRATCH4 mfspr r12, SPRN_SPRG_SCRATCH3 mfspr r11, SPRN_SPRG_SCRATCH1 @@ -556,9 +552,8 @@ finish_tlb_load: /* Done...restore registers and get out of here. */ mfspr r9, SPRN_SPRG_SCRATCH5 - mfspr r11, SPRN_SPRG_SCRATCH6 mtspr SPRN_PID, r9 - mtcr r11 + mtcr r12 mfspr r9, SPRN_SPRG_SCRATCH4 mfspr r12, SPRN_SPRG_SCRATCH3 mfspr r11, SPRN_SPRG_SCRATCH1 |