aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/kernel/trace/trace.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-21 11:37:57 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-21 11:37:57 -0800
commitad2e6329666650d9cafcae9ef53fbe09ea759ae2 (patch)
treeb23eb258fa609be246bb44cd9b33ff86d8142ca7 /kernel/trace/trace.c
parentUSB: io_ti: Fix NULL dereference in chase_port() (diff)
parentusb: gadget: FunctionFS: Fix missing braces in parse_opts (diff)
downloadwireguard-linux-ad2e6329666650d9cafcae9ef53fbe09ea759ae2.tar.xz
wireguard-linux-ad2e6329666650d9cafcae9ef53fbe09ea759ae2.zip
Merge tag 'fixes-for-v3.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe writes: usb: fixes for v3.8-rc5 Finally we have a build fix for fsl-mxc-udc UDC driver. We also have a fix for ep0 maxburst setting on DWC3 which could confuse the HW if we tell it we had way too many streams on that endpoint when it _has_ to be only one. cppi_dma support for MUSB got a fix when running as a module. By dropping the wrong __init annotation, the function will be available even when we're modules and we're done with .init.text section. Last, but not least, we have a fix on FunctionFS which was causing a bug on our option parsing algorithm.
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r--kernel/trace/trace.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index e5125677efa0..3c13e46d7d24 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;
@@ -3452,7 +3454,7 @@ static int tracing_wait_pipe(struct file *filp)
return -EINTR;
/*
- * We block until we read something and tracing is enabled.
+ * We block until we read something and tracing is disabled.
* We still block if tracing is disabled, but we have never
* read anything. This allows a user to cat this file, and
* then enable tracing. But after we have read something,
@@ -3460,7 +3462,7 @@ static int tracing_wait_pipe(struct file *filp)
*
* iter->pos will be 0 if we haven't read anything.
*/
- if (tracing_is_enabled() && iter->pos)
+ if (!tracing_is_enabled() && iter->pos)
break;
}
@@ -4815,10 +4817,17 @@ rb_simple_write(struct file *filp, const char __user *ubuf,
return ret;
if (buffer) {
- if (val)
+ mutex_lock(&trace_types_lock);
+ if (val) {
ring_buffer_record_on(buffer);
- else
+ if (current_trace->start)
+ current_trace->start(tr);
+ } else {
ring_buffer_record_off(buffer);
+ if (current_trace->stop)
+ current_trace->stop(tr);
+ }
+ mutex_unlock(&trace_types_lock);
}
(*ppos)++;