diff options
author | 2022-04-03 21:29:46 -0700 | |
---|---|---|
committer | 2022-05-01 19:51:21 -0700 | |
commit | de4415d0bac91192ee9c74e849bc61429efa9b42 (patch) | |
tree | f134a6a9f742fb2f073d763e290ab04c5db03726 /arch/xtensa/kernel/traps.c | |
parent | xtensa: drop dead code from entry.S (diff) | |
download | linux-dev-de4415d0bac91192ee9c74e849bc61429efa9b42.tar.xz linux-dev-de4415d0bac91192ee9c74e849bc61429efa9b42.zip |
xtensa: move trace_hardirqs_off call back to entry.S
Context tracking call must be done after hardirq tracking call,
otherwise lockdep_assert_irqs_disabled called from rcu_eqs_exit gives
a warning. To avoid context tracking logic duplication for IRQ/exception
entry paths move trace_hardirqs_off call back to common entry code.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to '')
-rw-r--r-- | arch/xtensa/kernel/traps.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c index 82ced7b25b77..515719c7e750 100644 --- a/arch/xtensa/kernel/traps.c +++ b/arch/xtensa/kernel/traps.c @@ -242,12 +242,8 @@ DEFINE_PER_CPU(unsigned long, nmi_count); void do_nmi(struct pt_regs *regs) { - struct pt_regs *old_regs; + struct pt_regs *old_regs = set_irq_regs(regs); - if ((regs->ps & PS_INTLEVEL_MASK) < LOCKLEVEL) - trace_hardirqs_off(); - - old_regs = set_irq_regs(regs); nmi_enter(); ++*this_cpu_ptr(&nmi_count); check_valid_nmi(); @@ -269,12 +265,9 @@ void do_interrupt(struct pt_regs *regs) XCHAL_INTLEVEL6_MASK, XCHAL_INTLEVEL7_MASK, }; - struct pt_regs *old_regs; + struct pt_regs *old_regs = set_irq_regs(regs); unsigned unhandled = ~0u; - trace_hardirqs_off(); - - old_regs = set_irq_regs(regs); irq_enter(); for (;;) { |