|
@@ -178,6 +178,13 @@ _GLOBAL(tm_reclaim)
|
|
|
|
|
|
std r11, GPR11(r1) /* Temporary stash */
|
|
|
|
|
|
+ /*
|
|
|
+ * Move the saved user r1 to the kernel stack in case PACATMSCRATCH is
|
|
|
+ * clobbered by an exception once we turn on MSR_RI below.
|
|
|
+ */
|
|
|
+ ld r11, PACATMSCRATCH(r13)
|
|
|
+ std r11, GPR1(r1)
|
|
|
+
|
|
|
/*
|
|
|
* Store r13 away so we can free up the scratch SPR for the SLB fault
|
|
|
* handler (needed once we start accessing the thread_struct).
|
|
@@ -214,7 +221,7 @@ _GLOBAL(tm_reclaim)
|
|
|
SAVE_GPR(8, r7) /* user r8 */
|
|
|
SAVE_GPR(9, r7) /* user r9 */
|
|
|
SAVE_GPR(10, r7) /* user r10 */
|
|
|
- ld r3, PACATMSCRATCH(r13) /* user r1 */
|
|
|
+ ld r3, GPR1(r1) /* user r1 */
|
|
|
ld r4, GPR7(r1) /* user r7 */
|
|
|
ld r5, GPR11(r1) /* user r11 */
|
|
|
ld r6, GPR12(r1) /* user r12 */
|