aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhaolei <zhaolei@cn.fujitsu.com>2009-08-07 06:55:48 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2009-08-17 20:07:04 -0400
commitf2d84b65b9778e8a35dd904f7d3993f0a60c9756 (patch)
tree472a349bcc647cdf99c55f832156492478734f99
parentdf4ecf1524c7793de3121b2d4e5fc6bcc0da3bfb (diff)
ftrace: Unify effect of writing to trace_options and option/*
"echo noglobal-clock > trace_options" can be used to change trace clock but "echo 0 > options/global-clock" can't. The flag toggling will be silently accepted without actually changing the clock callback. We can fix it by using set_tracer_flags() in trace_options_core_write(). Changelog: v1->v2: Simplified switch() after Li Zefan <lizf@cn.fujitsu.com>'s suggestion Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Cc: Steven Rostedt <srostedt@redhat.com> Cc: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
-rw-r--r--kernel/trace/trace.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index c22b40f8f576..8c358395d338 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3896,17 +3896,9 @@ trace_options_core_write(struct file *filp, const char __user *ubuf, size_t cnt,
3896 if (ret < 0) 3896 if (ret < 0)
3897 return ret; 3897 return ret;
3898 3898
3899 switch (val) { 3899 if (val != 0 && val != 1)
3900 case 0:
3901 trace_flags &= ~(1 << index);
3902 break;
3903 case 1:
3904 trace_flags |= 1 << index;
3905 break;
3906
3907 default:
3908 return -EINVAL; 3900 return -EINVAL;
3909 } 3901 set_tracer_flags(1 << index, val);
3910 3902
3911 *ppos += cnt; 3903 *ppos += cnt;
3912 3904