mirror of
https://github.com/torvalds/linux.git
synced 2024-11-20 02:51:44 +00:00
tracing: fix recursive test level calculation
The recursive tests to detect same level recursion in the ring buffers did not account for the hard/softirq_counts to be shifted. Thus the numbers could be larger than then mask to be tested. This patch includes the shift for the calculation of the irq depth. [ Impact: stop false positives in trace recursion detection ] Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
23de29de2d
commit
17487bfeb6
@ -1483,7 +1483,9 @@ rb_reserve_next_event(struct ring_buffer_per_cpu *cpu_buffer,
|
||||
|
||||
static int trace_irq_level(void)
|
||||
{
|
||||
return hardirq_count() + softirq_count() + in_nmi();
|
||||
return (hardirq_count() >> HARDIRQ_SHIFT) +
|
||||
(softirq_count() >> + SOFTIRQ_SHIFT) +
|
||||
!!in_nmi();
|
||||
}
|
||||
|
||||
static int trace_recursive_lock(void)
|
||||
|
Loading…
Reference in New Issue
Block a user