diff options
Diffstat (limited to 'include/linux/trace_recursion.h')
-rw-r--r-- | include/linux/trace_recursion.h | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/include/linux/trace_recursion.h b/include/linux/trace_recursion.h index fe95f0922526..816d7a0d2aad 100644 --- a/include/linux/trace_recursion.h +++ b/include/linux/trace_recursion.h @@ -116,13 +116,9 @@ enum { static __always_inline int trace_get_context_bit(void) { - unsigned long pc = preempt_count(); + unsigned char bit = interrupt_context_level(); - if (!(pc & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET))) - return TRACE_CTX_NORMAL; - else - return pc & NMI_MASK ? TRACE_CTX_NMI : - pc & HARDIRQ_MASK ? TRACE_CTX_IRQ : TRACE_CTX_SOFTIRQ; + return TRACE_CTX_NORMAL - bit; } #ifdef CONFIG_FTRACE_RECORD_RECURSION |