Message ID | 20221004051157.308999-1-npiggin@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] powerpc/64s/interrupt: Change must-hard-mask interrupt check from BUG to WARN | expand |
> On 04-Oct-2022, at 10:41 AM, Nicholas Piggin <npiggin@gmail.com> wrote: > > This new assertion added is generally harmless and gets fixed up > naturally, but it does indicate a problem with MSR manipulation > somewhere. > > Fixes: c39fb71a54f0 ("powerpc/64s/interrupt: masked handler debug check for previous hard disable") > Reported-by: Sachin Sant <sachinp@linux.ibm.com> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com> > --- Thanks Nick. Tested both the patches on Power9 and Power10. I no longer see the reported problem. Tested-by: Sachin Sant <sachinp@linux.ibm.com> - Sachin
On Tue, 4 Oct 2022 15:11:56 +1000, Nicholas Piggin wrote: > This new assertion added is generally harmless and gets fixed up > naturally, but it does indicate a problem with MSR manipulation > somewhere. > > Applied to powerpc/next. [1/2] powerpc/64s/interrupt: Change must-hard-mask interrupt check from BUG to WARN https://git.kernel.org/powerpc/c/8154850b28bd57a35ea73a7518ffcb9ccd5e43bc [2/2] powerpc/64: Fix msr_check_and_set/clear MSR[EE] race https://git.kernel.org/powerpc/c/0fa6831811f62cfc10415d731bcf9fde2647ad81 cheers
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index dafa275f18bc..d5d35f3a824e 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -2797,12 +2797,16 @@ masked_interrupt: #ifdef CONFIG_PPC_IRQ_SOFT_MASK_DEBUG /* * Ensure there was no previous MUST_HARD_MASK interrupt or - * HARD_DIS setting. + * HARD_DIS setting. If this does fire, the interrupt is still + * masked and MSR[EE] will be cleared on return, so no need to + * panic, but somebody probably enabled MSR[EE] under + * PACA_IRQ_HARD_DIS, mtmsr(mfmsr() | MSR_x) being a common + * cause. */ 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 + EMIT_WARN_ENTRY 0b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE) #endif lbz r9,PACAIRQHAPPENED(r13) or r9,r9,r10
This new assertion added is generally harmless and gets fixed up naturally, but it does indicate a problem with MSR manipulation somewhere. Fixes: c39fb71a54f0 ("powerpc/64s/interrupt: masked handler debug check for previous hard disable") Reported-by: Sachin Sant <sachinp@linux.ibm.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- arch/powerpc/kernel/exceptions-64s.S | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)