aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/tm.S9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/tm.S b/arch/powerpc/kernel/tm.S
index 183e8d75936f..7716374786bd 100644
--- a/arch/powerpc/kernel/tm.S
+++ b/arch/powerpc/kernel/tm.S
@@ -179,6 +179,13 @@ _GLOBAL(tm_reclaim)
179 std r11, GPR11(r1) /* Temporary stash */ 179 std r11, GPR11(r1) /* Temporary stash */
180 180
181 /* 181 /*
182 * Move the saved user r1 to the kernel stack in case PACATMSCRATCH is
183 * clobbered by an exception once we turn on MSR_RI below.
184 */
185 ld r11, PACATMSCRATCH(r13)
186 std r11, GPR1(r1)
187
188 /*
182 * Store r13 away so we can free up the scratch SPR for the SLB fault 189 * Store r13 away so we can free up the scratch SPR for the SLB fault
183 * handler (needed once we start accessing the thread_struct). 190 * handler (needed once we start accessing the thread_struct).
184 */ 191 */
@@ -214,7 +221,7 @@ _GLOBAL(tm_reclaim)
214 SAVE_GPR(8, r7) /* user r8 */ 221 SAVE_GPR(8, r7) /* user r8 */
215 SAVE_GPR(9, r7) /* user r9 */ 222 SAVE_GPR(9, r7) /* user r9 */
216 SAVE_GPR(10, r7) /* user r10 */ 223 SAVE_GPR(10, r7) /* user r10 */
217 ld r3, PACATMSCRATCH(r13) /* user r1 */ 224 ld r3, GPR1(r1) /* user r1 */
218 ld r4, GPR7(r1) /* user r7 */ 225 ld r4, GPR7(r1) /* user r7 */
219 ld r5, GPR11(r1) /* user r11 */ 226 ld r5, GPR11(r1) /* user r11 */
220 ld r6, GPR12(r1) /* user r12 */ 227 ld r6, GPR12(r1) /* user r12 */