powerpc/64s/interrupt: masked handler debug check for previous hard disable
Prior changes eliminated cases of masked PACA_IRQ_MUST_HARD_MASK interrupts that re-fire due to MSR[EE] being enabled while they are pending. Add a debug check in the masked interrupt handler to catch if this occurs. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220926054305.2671436-6-npiggin@gmail.com
This commit is contained in:
parent
9524f2278f
commit
c39fb71a54
1 changed files with 10 additions and 0 deletions
|
@ -2794,6 +2794,16 @@ masked_Hinterrupt:
|
||||||
masked_interrupt:
|
masked_interrupt:
|
||||||
.endif
|
.endif
|
||||||
stw r9,PACA_EXGEN+EX_CCR(r13)
|
stw r9,PACA_EXGEN+EX_CCR(r13)
|
||||||
|
#ifdef CONFIG_PPC_IRQ_SOFT_MASK_DEBUG
|
||||||
|
/*
|
||||||
|
* Ensure there was no previous MUST_HARD_MASK interrupt or
|
||||||
|
* HARD_DIS setting.
|
||||||
|
*/
|
||||||
|
lbz r9,PACAIRQHAPPENED(r13)
|
||||||
|
andi. r9,r9,(PACA_IRQ_MUST_HARD_MASK|PACA_IRQ_HARD_DIS)
|
||||||
|
0: tdnei r9,0
|
||||||
|
EMIT_BUG_ENTRY 0b,__FILE__,__LINE__,0
|
||||||
|
#endif
|
||||||
lbz r9,PACAIRQHAPPENED(r13)
|
lbz r9,PACAIRQHAPPENED(r13)
|
||||||
or r9,r9,r10
|
or r9,r9,r10
|
||||||
stb r9,PACAIRQHAPPENED(r13)
|
stb r9,PACAIRQHAPPENED(r13)
|
||||||
|
|
Loading…
Add table
Reference in a new issue