|
@@ -386,10 +386,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
|
|
|
|
4: /* Anything else left to do? */
|
|
|
BEGIN_FTR_SECTION
|
|
|
- lis r3,INIT_PPR@highest /* Set thread.ppr = 3 */
|
|
|
- ld r10,PACACURRENT(r13)
|
|
|
+ lis r3,DEFAULT_PPR@highest /* Set default PPR */
|
|
|
sldi r3,r3,32 /* bits 11-13 are used for ppr */
|
|
|
- std r3,TASKTHREADPPR(r10)
|
|
|
+ std r3,_PPR(r1)
|
|
|
END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
|
|
|
|
andi. r0,r9,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP)
|
|
@@ -942,12 +941,6 @@ fast_exception_return:
|
|
|
andi. r0,r3,MSR_RI
|
|
|
beq- .Lunrecov_restore
|
|
|
|
|
|
- /* Load PPR from thread struct before we clear MSR:RI */
|
|
|
-BEGIN_FTR_SECTION
|
|
|
- ld r2,PACACURRENT(r13)
|
|
|
- ld r2,TASKTHREADPPR(r2)
|
|
|
-END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
|
-
|
|
|
/*
|
|
|
* Clear RI before restoring r13. If we are returning to
|
|
|
* userspace and we take an exception after restoring r13,
|
|
@@ -968,7 +961,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
|
andi. r0,r3,MSR_PR
|
|
|
beq 1f
|
|
|
BEGIN_FTR_SECTION
|
|
|
- mtspr SPRN_PPR,r2 /* Restore PPR */
|
|
|
+ /* Restore PPR */
|
|
|
+ ld r2,_PPR(r1)
|
|
|
+ mtspr SPRN_PPR,r2
|
|
|
END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|
|
ACCOUNT_CPU_USER_EXIT(r13, r2, r4)
|
|
|
REST_GPR(13, r1)
|