|
@@ -104,7 +104,7 @@ __start_interrupts:
|
|
|
|
|
|
.globl system_reset_pSeries;
|
|
|
system_reset_pSeries:
|
|
|
- HMT_MEDIUM;
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13)
|
|
|
#ifdef CONFIG_PPC_P7_NAP
|
|
|
BEGIN_FTR_SECTION
|
|
@@ -158,7 +158,7 @@ machine_check_pSeries_1:
|
|
|
. = 0x300
|
|
|
.globl data_access_pSeries
|
|
|
data_access_pSeries:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13)
|
|
|
BEGIN_FTR_SECTION
|
|
|
b data_access_check_stab
|
|
@@ -170,7 +170,7 @@ END_MMU_FTR_SECTION_IFCLR(MMU_FTR_SLB)
|
|
|
. = 0x380
|
|
|
.globl data_access_slb_pSeries
|
|
|
data_access_slb_pSeries:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13)
|
|
|
EXCEPTION_PROLOG_1(PACA_EXSLB, KVMTEST, 0x380)
|
|
|
std r3,PACA_EXSLB+EX_R3(r13)
|
|
@@ -201,7 +201,7 @@ data_access_slb_pSeries:
|
|
|
. = 0x480
|
|
|
.globl instruction_access_slb_pSeries
|
|
|
instruction_access_slb_pSeries:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13)
|
|
|
EXCEPTION_PROLOG_1(PACA_EXSLB, KVMTEST_PR, 0x480)
|
|
|
std r3,PACA_EXSLB+EX_R3(r13)
|
|
@@ -324,10 +324,11 @@ vsx_unavailable_pSeries_1:
|
|
|
. = 0x1500
|
|
|
.global denorm_exception_hv
|
|
|
denorm_exception_hv:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
mtspr SPRN_SPRG_HSCRATCH0,r13
|
|
|
mfspr r13,SPRN_SPRG_HPACA
|
|
|
std r9,PACA_EXGEN+EX_R9(r13)
|
|
|
+ HMT_MEDIUM_PPR_SAVE(PACA_EXGEN, r9)
|
|
|
std r10,PACA_EXGEN+EX_R10(r13)
|
|
|
std r11,PACA_EXGEN+EX_R11(r13)
|
|
|
std r12,PACA_EXGEN+EX_R12(r13)
|
|
@@ -369,7 +370,7 @@ denorm_exception_hv:
|
|
|
machine_check_pSeries:
|
|
|
.globl machine_check_fwnmi
|
|
|
machine_check_fwnmi:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13) /* save r13 */
|
|
|
EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common,
|
|
|
EXC_STD, KVMTEST, 0x200)
|
|
@@ -498,6 +499,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_206)
|
|
|
mtspr SPRN_HSRR0,r11
|
|
|
mtcrf 0x80,r9
|
|
|
ld r9,PACA_EXGEN+EX_R9(r13)
|
|
|
+ RESTORE_PPR_PACA(PACA_EXGEN, r10)
|
|
|
ld r10,PACA_EXGEN+EX_R10(r13)
|
|
|
ld r11,PACA_EXGEN+EX_R11(r13)
|
|
|
ld r12,PACA_EXGEN+EX_R12(r13)
|
|
@@ -603,7 +605,7 @@ ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE)
|
|
|
.globl system_reset_fwnmi
|
|
|
.align 7
|
|
|
system_reset_fwnmi:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13) /* save r13 */
|
|
|
EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common, EXC_STD,
|
|
|
NOTEST, 0x100)
|
|
@@ -716,7 +718,7 @@ machine_check_common:
|
|
|
. = 0x4380
|
|
|
.globl data_access_slb_relon_pSeries
|
|
|
data_access_slb_relon_pSeries:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13)
|
|
|
EXCEPTION_PROLOG_1(PACA_EXSLB, NOTEST, 0x380)
|
|
|
std r3,PACA_EXSLB+EX_R3(r13)
|
|
@@ -741,7 +743,7 @@ data_access_slb_relon_pSeries:
|
|
|
. = 0x4480
|
|
|
.globl instruction_access_slb_relon_pSeries
|
|
|
instruction_access_slb_relon_pSeries:
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13)
|
|
|
EXCEPTION_PROLOG_1(PACA_EXSLB, NOTEST, 0x480)
|
|
|
std r3,PACA_EXSLB+EX_R3(r13)
|
|
@@ -1062,6 +1064,7 @@ _GLOBAL(slb_miss_realmode)
|
|
|
mtcrf 0x01,r9 /* slb_allocate uses cr0 and cr7 */
|
|
|
.machine pop
|
|
|
|
|
|
+ RESTORE_PPR_PACA(PACA_EXSLB, r9)
|
|
|
ld r9,PACA_EXSLB+EX_R9(r13)
|
|
|
ld r10,PACA_EXSLB+EX_R10(r13)
|
|
|
ld r11,PACA_EXSLB+EX_R11(r13)
|
|
@@ -1411,7 +1414,7 @@ initial_stab:
|
|
|
|
|
|
#ifdef CONFIG_PPC_POWERNV
|
|
|
_GLOBAL(opal_mc_secondary_handler)
|
|
|
- HMT_MEDIUM
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
SET_SCRATCH0(r13)
|
|
|
GET_PACA(r13)
|
|
|
clrldi r3,r3,2
|