mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-25 00:39:32 +07:00
powerpc/64s/exception: Remove old INT_COMMON macro
Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200225173541.1549955-8-npiggin@gmail.com
This commit is contained in:
parent
fc589ee416
commit
6d71759a74
@ -591,8 +591,8 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
|
||||
* If stack=0, then the stack is already set in r1, and r1 is saved in r10.
|
||||
* PPR save and CPU accounting is not done for the !stack case (XXX why not?)
|
||||
*/
|
||||
.macro INT_COMMON vec, area, stack, kuap, reconcile, dar, dsisr
|
||||
.if \stack
|
||||
.macro GEN_COMMON name
|
||||
.if ISTACK
|
||||
andi. r10,r12,MSR_PR /* See if coming from user */
|
||||
mr r10,r1 /* Save r1 */
|
||||
subi r1,r1,INT_FRAME_SIZE /* alloc frame on kernel stack */
|
||||
@ -609,54 +609,54 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
|
||||
std r0,GPR0(r1) /* save r0 in stackframe */
|
||||
std r10,GPR1(r1) /* save r1 in stackframe */
|
||||
|
||||
.if \stack
|
||||
.if \kuap
|
||||
.if ISTACK
|
||||
.if IKUAP
|
||||
kuap_save_amr_and_lock r9, r10, cr1, cr0
|
||||
.endif
|
||||
beq 101f /* if from kernel mode */
|
||||
ACCOUNT_CPU_USER_ENTRY(r13, r9, r10)
|
||||
SAVE_PPR(\area, r9)
|
||||
SAVE_PPR(IAREA, r9)
|
||||
101:
|
||||
.else
|
||||
.if \kuap
|
||||
.if IKUAP
|
||||
kuap_save_amr_and_lock r9, r10, cr1
|
||||
.endif
|
||||
.endif
|
||||
|
||||
/* Save original regs values from save area to stack frame. */
|
||||
ld r9,\area+EX_R9(r13) /* move r9, r10 to stackframe */
|
||||
ld r10,\area+EX_R10(r13)
|
||||
ld r9,IAREA+EX_R9(r13) /* move r9, r10 to stackframe */
|
||||
ld r10,IAREA+EX_R10(r13)
|
||||
std r9,GPR9(r1)
|
||||
std r10,GPR10(r1)
|
||||
ld r9,\area+EX_R11(r13) /* move r11 - r13 to stackframe */
|
||||
ld r10,\area+EX_R12(r13)
|
||||
ld r11,\area+EX_R13(r13)
|
||||
ld r9,IAREA+EX_R11(r13) /* move r11 - r13 to stackframe */
|
||||
ld r10,IAREA+EX_R12(r13)
|
||||
ld r11,IAREA+EX_R13(r13)
|
||||
std r9,GPR11(r1)
|
||||
std r10,GPR12(r1)
|
||||
std r11,GPR13(r1)
|
||||
.if \dar
|
||||
.if \dar == 2
|
||||
.if IDAR
|
||||
.if IDAR == 2
|
||||
ld r10,_NIP(r1)
|
||||
.else
|
||||
ld r10,\area+EX_DAR(r13)
|
||||
ld r10,IAREA+EX_DAR(r13)
|
||||
.endif
|
||||
std r10,_DAR(r1)
|
||||
.endif
|
||||
.if \dsisr
|
||||
.if \dsisr == 2
|
||||
.if IDSISR
|
||||
.if IDSISR == 2
|
||||
ld r10,_MSR(r1)
|
||||
lis r11,DSISR_SRR1_MATCH_64S@h
|
||||
and r10,r10,r11
|
||||
.else
|
||||
lwz r10,\area+EX_DSISR(r13)
|
||||
lwz r10,IAREA+EX_DSISR(r13)
|
||||
.endif
|
||||
std r10,_DSISR(r1)
|
||||
.endif
|
||||
BEGIN_FTR_SECTION_NESTED(66)
|
||||
ld r10,\area+EX_CFAR(r13)
|
||||
ld r10,IAREA+EX_CFAR(r13)
|
||||
std r10,ORIG_GPR3(r1)
|
||||
END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66)
|
||||
GET_CTR(r10, \area)
|
||||
GET_CTR(r10, IAREA)
|
||||
std r10,_CTR(r1)
|
||||
std r2,GPR2(r1) /* save r2 in stackframe */
|
||||
SAVE_4GPRS(3, r1) /* save r3 - r6 in stackframe */
|
||||
@ -668,26 +668,22 @@ END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66)
|
||||
mfspr r11,SPRN_XER /* save XER in stackframe */
|
||||
std r10,SOFTE(r1)
|
||||
std r11,_XER(r1)
|
||||
li r9,(\vec)+1
|
||||
li r9,(IVEC)+1
|
||||
std r9,_TRAP(r1) /* set trap number */
|
||||
li r10,0
|
||||
ld r11,exception_marker@toc(r2)
|
||||
std r10,RESULT(r1) /* clear regs->result */
|
||||
std r11,STACK_FRAME_OVERHEAD-16(r1) /* mark the frame */
|
||||
|
||||
.if \stack
|
||||
.if ISTACK
|
||||
ACCOUNT_STOLEN_TIME
|
||||
.endif
|
||||
|
||||
.if \reconcile
|
||||
.if IRECONCILE
|
||||
RECONCILE_IRQ_STATE(r10, r11)
|
||||
.endif
|
||||
.endm
|
||||
|
||||
.macro GEN_COMMON name
|
||||
INT_COMMON IVEC, IAREA, ISTACK, IKUAP, IRECONCILE, IDAR, IDSISR
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Restore all registers including H/SRR0/1 saved in a stack frame of a
|
||||
* standard exception.
|
||||
@ -2387,7 +2383,8 @@ EXC_COMMON_BEGIN(soft_nmi_common)
|
||||
mr r10,r1
|
||||
ld r1,PACAEMERGSP(r13)
|
||||
subi r1,r1,INT_FRAME_SIZE
|
||||
INT_COMMON 0x900, PACA_EXGEN, 0, 1, 1, 0, 0
|
||||
__ISTACK(decrementer)=0
|
||||
GEN_COMMON decrementer
|
||||
bl save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl soft_nmi_interrupt
|
||||
|
Loading…
Reference in New Issue
Block a user