From d7cee420b1e13205ff624c0704c960a46e2cba02 Mon Sep 17 00:00:00 2001 From: Lai Jiangshan Date: Wed, 13 Jan 2010 19:38:30 +0800 Subject: [PATCH] --- yaml --- r: 182295 b: refs/heads/master c: ea2c68a08fedb5053ba312d661e47df9f4d72411 h: refs/heads/master i: 182293: fd4798c031db0cbedd38e52f5e4d1c05c2623077 182291: 4ad66219495b0345af1f073dee4900096b6bae4f 182287: 622f4cb71a4fd2c26edbe09ded74b59f4f429c6e v: v3 --- [refs] | 2 +- trunk/kernel/trace/trace.h | 2 +- trunk/kernel/trace/trace_functions_graph.c | 8 ++------ 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 9fc42c7c03f3..cceb2cade147 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 24a53652e361321b09df5040711e69387344ce09 +refs/heads/master: ea2c68a08fedb5053ba312d661e47df9f4d72411 diff --git a/trunk/kernel/trace/trace.h b/trunk/kernel/trace/trace.h index 4df6a77eb196..ce077fbbf552 100644 --- a/trunk/kernel/trace/trace.h +++ b/trunk/kernel/trace/trace.h @@ -504,7 +504,7 @@ static inline int ftrace_graph_addr(unsigned long addr) { int i; - if (!ftrace_graph_count || test_tsk_trace_graph(current)) + if (!ftrace_graph_count) return 1; for (i = 0; i < ftrace_graph_count; i++) { diff --git a/trunk/kernel/trace/trace_functions_graph.c b/trunk/kernel/trace/trace_functions_graph.c index f2252296607c..616b135c9eb9 100644 --- a/trunk/kernel/trace/trace_functions_graph.c +++ b/trunk/kernel/trace/trace_functions_graph.c @@ -215,7 +215,8 @@ int trace_graph_entry(struct ftrace_graph_ent *trace) if (!ftrace_trace_task(current)) return 0; - if (!ftrace_graph_addr(trace->func)) + /* trace it when it is-nested-in or is a function enabled. */ + if (!(trace->depth || ftrace_graph_addr(trace->func))) return 0; local_irq_save(flags); @@ -228,9 +229,6 @@ int trace_graph_entry(struct ftrace_graph_ent *trace) } else { ret = 0; } - /* Only do the atomic if it is not already set */ - if (!test_tsk_trace_graph(current)) - set_tsk_trace_graph(current); atomic_dec(&data->disabled); local_irq_restore(flags); @@ -278,8 +276,6 @@ void trace_graph_return(struct ftrace_graph_ret *trace) pc = preempt_count(); __trace_graph_return(tr, trace, flags, pc); } - if (!trace->depth) - clear_tsk_trace_graph(current); atomic_dec(&data->disabled); local_irq_restore(flags); }