From: Guo Ren <[email protected]> Move trace_hardirqs_on to correct place. If SR_PIE isn't set, the trace_hardirqs_on will cause wrong record.
Signed-off-by: Guo Ren <[email protected]> Cc: Palmer Dabbelt <[email protected]> Cc: Vincent Chen <[email protected]> --- arch/riscv/kernel/entry.S | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S index 7a1a6bb..c1b38e2 100644 --- a/arch/riscv/kernel/entry.S +++ b/arch/riscv/kernel/entry.S @@ -124,17 +124,17 @@ skip_context_tracking: REG_L a1, (a1) jr a1 1: -#ifdef CONFIG_TRACE_IRQFLAGS - call trace_hardirqs_on - - REG_L s1, PT_STATUS(sp) -#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 + + REG_L s1, PT_STATUS(sp) +#endif csrs CSR_STATUS, SR_IE 1: -- 2.7.4

