Commit c39fb71a authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

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: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220926054305.2671436-6-npiggin@gmail.com
parent 9524f227
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2794,6 +2794,16 @@ masked_Hinterrupt:
masked_interrupt:
	.endif
	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)
	or	r9,r9,r10
	stb	r9,PACAIRQHAPPENED(r13)