Messages in this thread | | | Date | Thu, 5 Nov 2015 13:51:40 +1100 | From | Stephen Rothwell <> | Subject | linux-next: manual merge of the ftrace tree with Linus' tree |
| |
Hi Steven,
Today's linux-next merge of the ftrace tree got a conflict in:
kernel/trace/trace_stack.c
between commit:
a2d762904832 ("tracing: Have stack tracer force RCU to be watching")
from Linus' tree and commit:
d332736df0c2 ("tracing: Rename max_stack_lock to stack_trace_max_lock")
from the ftrace tree.
I fixed it up (see below) and can carry the fix as necessary (no action is required).
-- Cheers, Stephen Rothwell sfr@canb.auug.org.au
diff --cc kernel/trace/trace_stack.c index 8abf1ba18085,0bd212af406c..000000000000 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c @@@ -85,19 -91,9 +91,19 @@@ check_stack(unsigned long ip, unsigned if (!object_is_on_stack(stack)) return; + /* Can't do this from NMI context (can cause deadlocks) */ + if (in_nmi()) + return; + local_irq_save(flags); - arch_spin_lock(&max_stack_lock); + arch_spin_lock(&stack_trace_max_lock); + /* + * RCU may not be watching, make it see us. + * The stack trace code uses rcu_sched. + */ + rcu_irq_enter(); + /* In case another CPU set the tracer_frame on us */ if (unlikely(!frame_size)) this_size -= tracer_frame; @@@ -179,8 -175,7 +185,8 @@@ } out: + rcu_irq_exit(); - arch_spin_unlock(&max_stack_lock); + arch_spin_unlock(&stack_trace_max_lock); local_irq_restore(flags); }
| |