projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0ea02c7
)
riscv: Trace irq on only interrupt is enabled
author
Atish Patra
<atish.patra@wdc.com>
Sat, 19 Dec 2020 00:20:51 +0000
(16:20 -0800)
committer
Palmer Dabbelt
<palmerdabbelt@google.com>
Wed, 13 Jan 2021 04:16:35 +0000
(20:16 -0800)
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")
Signed-off-by: Atish Patra <atish.patra@wdc.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/kernel/entry.S
patch
|
blob
|
history
diff --git
a/arch/riscv/kernel/entry.S
b/arch/riscv/kernel/entry.S
index 48de316c68c18ccf920f1a20c66d68762fed0316..744f3209c48d0b30d0e67f7b00f136b75d5e0fd0 100644
(file)
--- 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: