From 8d60fc41af79dae8afc91c4a40224a935116f875 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Mon, 1 Jun 2009 21:51:28 -0400 Subject: [PATCH] --- yaml --- r: 146207 b: refs/heads/master c: 0f6ce3de4ef6ff940308087c49760d068851c1a7 h: refs/heads/master i: 146205: 203b27997ae77a8971056154ad55b51d41f4893d 146203: 2c794e92d0d10e39f0ee96f59b5102f5298585e0 146199: 0c6c958e845cc8040aebb0244357914147e27d7c 146191: b3576498c68267834019d017ae7338fbb8eda3a7 146175: 16d1fe19991aec8a7ab16eae8e85b280c646624c v: v3 --- [refs] | 2 +- trunk/kernel/trace/ftrace.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 4366b2c88d2a..d1da37af3ef1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 112f38a7e36e9d688b389507136bf3af3e6d159b +refs/heads/master: 0f6ce3de4ef6ff940308087c49760d068851c1a7 diff --git a/trunk/kernel/trace/ftrace.c b/trunk/kernel/trace/ftrace.c index 2074e5b7766b..d6973dfadb36 100644 --- a/trunk/kernel/trace/ftrace.c +++ b/trunk/kernel/trace/ftrace.c @@ -599,7 +599,7 @@ function_profile_call(unsigned long ip, unsigned long parent_ip) local_irq_save(flags); stat = &__get_cpu_var(ftrace_profile_stats); - if (!stat->hash) + if (!stat->hash || !ftrace_profile_enabled) goto out; rec = ftrace_find_profiled_func(stat, ip); @@ -630,7 +630,7 @@ static void profile_graph_return(struct ftrace_graph_ret *trace) local_irq_save(flags); stat = &__get_cpu_var(ftrace_profile_stats); - if (!stat->hash) + if (!stat->hash || !ftrace_profile_enabled) goto out; calltime = trace->rettime - trace->calltime; @@ -724,6 +724,10 @@ ftrace_profile_write(struct file *filp, const char __user *ubuf, ftrace_profile_enabled = 1; } else { ftrace_profile_enabled = 0; + /* + * unregister_ftrace_profiler calls stop_machine + * so this acts like an synchronize_sched. + */ unregister_ftrace_profiler(); } }