diff options
Diffstat (limited to 'kernel/trace/trace.c')
| -rw-r--r-- | kernel/trace/trace.c | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index df2c9f730ac6..e521f1e8f2bb 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c  | |||
| @@ -263,6 +263,9 @@ unsigned long trace_flags = TRACE_ITER_PRINT_PARENT | TRACE_ITER_PRINTK | | |||
| 263 | TRACE_ITER_ANNOTATE | TRACE_ITER_CONTEXT_INFO | TRACE_ITER_SLEEP_TIME | | 263 | TRACE_ITER_ANNOTATE | TRACE_ITER_CONTEXT_INFO | TRACE_ITER_SLEEP_TIME | | 
| 264 | TRACE_ITER_GRAPH_TIME; | 264 | TRACE_ITER_GRAPH_TIME; | 
| 265 | 265 | ||
| 266 | static int trace_stop_count; | ||
| 267 | static DEFINE_SPINLOCK(tracing_start_lock); | ||
| 268 | |||
| 266 | /** | 269 | /** | 
| 267 | * trace_wake_up - wake up tasks waiting for trace input | 270 | * trace_wake_up - wake up tasks waiting for trace input | 
| 268 | * | 271 | * | 
| @@ -442,6 +445,9 @@ update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) | |||
| 442 | { | 445 | { | 
| 443 | struct ring_buffer *buf = tr->buffer; | 446 | struct ring_buffer *buf = tr->buffer; | 
| 444 | 447 | ||
| 448 | if (trace_stop_count) | ||
| 449 | return; | ||
| 450 | |||
| 445 | WARN_ON_ONCE(!irqs_disabled()); | 451 | WARN_ON_ONCE(!irqs_disabled()); | 
| 446 | __raw_spin_lock(&ftrace_max_lock); | 452 | __raw_spin_lock(&ftrace_max_lock); | 
| 447 | 453 | ||
| @@ -469,6 +475,9 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu) | |||
| 469 | { | 475 | { | 
| 470 | int ret; | 476 | int ret; | 
| 471 | 477 | ||
| 478 | if (trace_stop_count) | ||
| 479 | return; | ||
| 480 | |||
| 472 | WARN_ON_ONCE(!irqs_disabled()); | 481 | WARN_ON_ONCE(!irqs_disabled()); | 
| 473 | __raw_spin_lock(&ftrace_max_lock); | 482 | __raw_spin_lock(&ftrace_max_lock); | 
| 474 | 483 | ||
| @@ -685,9 +694,6 @@ static void trace_init_cmdlines(void) | |||
| 685 | cmdline_idx = 0; | 694 | cmdline_idx = 0; | 
| 686 | } | 695 | } | 
| 687 | 696 | ||
| 688 | static int trace_stop_count; | ||
| 689 | static DEFINE_SPINLOCK(tracing_start_lock); | ||
| 690 | |||
| 691 | /** | 697 | /** | 
| 692 | * ftrace_off_permanent - disable all ftrace code permanently | 698 | * ftrace_off_permanent - disable all ftrace code permanently | 
| 693 | * | 699 | * | 
