aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2017-12-22 20:38:57 -0500
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2017-12-27 14:20:59 -0500
commit6b7e633fe9c24682df550e5311f47fb524701586 (patch)
treecb9c16b9dba5b122889f75ea7097088aaa82af20
parent45d8b80c2ac5d21cd1e2954431fb676bc2b1e099 (diff)
tracing: Remove extra zeroing out of the ring buffer page
The ring_buffer_read_page() takes care of zeroing out any extra data in the page that it returns. There's no need to zero it out again from the consumer. It was removed from one consumer of this function, but read_buffers_splice_read() did not remove it, and worse, it contained a nasty bug because of it. Cc: stable@vger.kernel.org Fixes: 2711ca237a084 ("ring-buffer: Move zeroing out excess in page to ring buffer code") Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--kernel/trace/trace.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 59518b8126d0..73652d5318b2 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -6769,7 +6769,7 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
6769 .spd_release = buffer_spd_release, 6769 .spd_release = buffer_spd_release,
6770 }; 6770 };
6771 struct buffer_ref *ref; 6771 struct buffer_ref *ref;
6772 int entries, size, i; 6772 int entries, i;
6773 ssize_t ret = 0; 6773 ssize_t ret = 0;
6774 6774
6775#ifdef CONFIG_TRACER_MAX_TRACE 6775#ifdef CONFIG_TRACER_MAX_TRACE
@@ -6823,14 +6823,6 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
6823 break; 6823 break;
6824 } 6824 }
6825 6825
6826 /*
6827 * zero out any left over data, this is going to
6828 * user land.
6829 */
6830 size = ring_buffer_page_len(ref->page);
6831 if (size < PAGE_SIZE)
6832 memset(ref->page + size, 0, PAGE_SIZE - size);
6833
6834 page = virt_to_page(ref->page); 6826 page = virt_to_page(ref->page);
6835 6827
6836 spd.pages[i] = page; 6828 spd.pages[i] = page;