|
@@ -892,7 +892,7 @@ BEGIN_FTR_SECTION
|
|
END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
ACCOUNT_CPU_USER_EXIT(r13, r2, r4)
|
|
ACCOUNT_CPU_USER_EXIT(r13, r2, r4)
|
|
REST_GPR(13, r1)
|
|
REST_GPR(13, r1)
|
|
-1:
|
|
|
|
|
|
+
|
|
mtspr SPRN_SRR1,r3
|
|
mtspr SPRN_SRR1,r3
|
|
|
|
|
|
ld r2,_CCR(r1)
|
|
ld r2,_CCR(r1)
|
|
@@ -905,8 +905,22 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
ld r3,GPR3(r1)
|
|
ld r3,GPR3(r1)
|
|
ld r4,GPR4(r1)
|
|
ld r4,GPR4(r1)
|
|
ld r1,GPR1(r1)
|
|
ld r1,GPR1(r1)
|
|
|
|
+ RFI_TO_USER
|
|
|
|
+ b . /* prevent speculative execution */
|
|
|
|
+
|
|
|
|
+1: mtspr SPRN_SRR1,r3
|
|
|
|
+
|
|
|
|
+ ld r2,_CCR(r1)
|
|
|
|
+ mtcrf 0xFF,r2
|
|
|
|
+ ld r2,_NIP(r1)
|
|
|
|
+ mtspr SPRN_SRR0,r2
|
|
|
|
|
|
- rfid
|
|
|
|
|
|
+ ld r0,GPR0(r1)
|
|
|
|
+ ld r2,GPR2(r1)
|
|
|
|
+ ld r3,GPR3(r1)
|
|
|
|
+ ld r4,GPR4(r1)
|
|
|
|
+ ld r1,GPR1(r1)
|
|
|
|
+ RFI_TO_KERNEL
|
|
b . /* prevent speculative execution */
|
|
b . /* prevent speculative execution */
|
|
|
|
|
|
#endif /* CONFIG_PPC_BOOK3E */
|
|
#endif /* CONFIG_PPC_BOOK3E */
|