diff options
author | Zhaolei <zhaolei@cn.fujitsu.com> | 2009-08-07 18:55:48 +0800 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2009-08-18 02:07:04 +0200 |
commit | f2d84b65b9778e8a35dd904f7d3993f0a60c9756 (patch) | |
tree | 472a349bcc647cdf99c55f832156492478734f99 /kernel/trace | |
parent | df4ecf1524c7793de3121b2d4e5fc6bcc0da3bfb (diff) | |
download | linux-f2d84b65b9778e8a35dd904f7d3993f0a60c9756.tar.gz linux-f2d84b65b9778e8a35dd904f7d3993f0a60c9756.tar.bz2 linux-f2d84b65b9778e8a35dd904f7d3993f0a60c9756.zip |
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>
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/trace.c | 12 |
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, if (ret < 0) return ret; - switch (val) { - case 0: - trace_flags &= ~(1 << index); - break; - case 1: - trace_flags |= 1 << index; - break; - - default: + if (val != 0 && val != 1) return -EINVAL; - } + set_tracer_flags(1 << index, val); *ppos += cnt; |