Messages in this thread Patch in this message | | | Subject | [PATCH][GIT PULL] tracing: Fix regression of trace_options file setting | From | Steven Rostedt <> | Date | Thu, 10 Jan 2013 11:43:49 -0500 |
| |
Linus,
I just hit this bug with the lastest kernel. A change that came in this merge window broke the writing to the trace_options file. It causes garbage to be read during the compare of option names, and breaks setting options via the trace_options file, although options can still be set via the options/<option> files.
Also, I'm not sure where Ingo is, but I have an old pull request with minor fixes. Feel free to pull that if you want too:
https://lkml.org/lkml/2013/1/7/208
Please pull trace-3.8-rc2-regression-fix:
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git trace-3.8-rc2-regression-fix
Head SHA1: f1a67efdbc2c0acb43b2f844053320c38876776f
Steven Rostedt (1): tracing: Fix regression of trace_options file setting
---- kernel/trace/trace.c | 2 ++ 1 file changed, 2 insertions(+) --------------------------- commit a8dd2176a8e988e3744e863ac39647a6f59fa900 Author: Steven Rostedt <srostedt@redhat.com> Date: Wed Jan 9 20:54:17 2013 -0500
tracing: Fix regression of trace_options file setting The latest change to allow trace options to be set on the command line also broke the trace_options file. The zeroing of the last byte of the option name that is echoed into the trace_option file was removed with the consolidation of some of the code. The compare between the option and what was written to the trace_options file fails because the string holding the data written doesn't terminate with a null character. A zero needs to be added to the end of the string copied from user space. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index e512567..1bbfa04 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2899,6 +2899,8 @@ tracing_trace_options_write(struct file *filp, const char __user *ubuf, if (copy_from_user(&buf, ubuf, cnt)) return -EFAULT; + buf[cnt] = 0; + trace_set_options(buf); *ppos += cnt;
| |