Messages in this thread | | | Date | Tue, 12 Jan 2021 20:36:26 -0800 (PST) | Subject | Re: [PATCH] riscv: Trace irq on only interrupt is enabled | From | Palmer Dabbelt <> |
| |
On Fri, 18 Dec 2020 16:20:51 PST (-0800), Atish Patra wrote: > We should call irq trace only if interrupt is going to be enabled during > excecption handling. Otherwise, it results in following warning during > boot with lock debugging enabled. > > [ 0.000000] ------------[ cut here ]------------ > [ 0.000000] DEBUG_LOCKS_WARN_ON(early_boot_irqs_disabled) > [ 0.000000] WARNING: CPU: 0 PID: 0 at kernel/locking/lockdep.c:4085 lockdep_hardirqs_on_prepare+0x22a/0x22e > [ 0.000000] Modules linked in: > [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.0-00022-ge20097fb37e2-dirty #548 > [ 0.000000] epc: c005d5d4 ra : c005d5d4 sp : c1c01e80 > [ 0.000000] gp : c1d456e0 tp : c1c0a980 t0 : 00000000 > [ 0.000000] t1 : ffffffff t2 : 00000000 s0 : c1c01ea0 > [ 0.000000] s1 : c100f360 a0 : 0000002d a1 : c00666ee > [ 0.000000] a2 : 00000000 a3 : 00000000 a4 : 00000000 > [ 0.000000] a5 : 00000000 a6 : c1c6b390 a7 : 3ffff00e > [ 0.000000] s2 : c2384fe8 s3 : 00000000 s4 : 00000001 > [ 0.000000] s5 : c1c0a980 s6 : c1d48000 s7 : c1613b4c > [ 0.000000] s8 : 00000fff s9 : 80000200 s10: c1613b40 > [ 0.000000] s11: 00000000 t3 : 00000000 t4 : 00000000 > [ 0.000000] t5 : 00000001 t6 : 00000000 > > Fixes: 3c4697982982 ("riscv:Enable LOCKDEP_SUPPORT & fixup TRACE_IRQFLAGS_SUPPORT") > Cc: stable@vger.kernel.org > > Signed-off-by: Atish Patra <atish.patra@wdc.com> > --- > arch/riscv/kernel/entry.S | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S > index 524d918f3601..7dea5ee5a3ac 100644 > --- a/arch/riscv/kernel/entry.S > +++ b/arch/riscv/kernel/entry.S > @@ -124,15 +124,15 @@ skip_context_tracking: > REG_L a1, (a1) > jr a1 > 1: > -#ifdef CONFIG_TRACE_IRQFLAGS > - call trace_hardirqs_on > -#endif > /* > * Exceptions run with interrupts enabled or disabled depending on the > * state of SR_PIE in m/sstatus. > */ > andi t0, s1, SR_PIE > beqz t0, 1f > +#ifdef CONFIG_TRACE_IRQFLAGS > + call trace_hardirqs_on > +#endif > csrs CSR_STATUS, SR_IE > > 1:
Thanks, this is on fixes.
| |