aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/ring_buffer.c11
-rw-r--r--kernel/trace/trace.c6
2 files changed, 9 insertions, 8 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index b0702ff78218..1da7b6ea8b85 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -3902,12 +3902,12 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
3902 ret = read; 3902 ret = read;
3903 3903
3904 cpu_buffer->lost_events = 0; 3904 cpu_buffer->lost_events = 0;
3905
3906 commit = local_read(&bpage->commit);
3905 /* 3907 /*
3906 * Set a flag in the commit field if we lost events 3908 * Set a flag in the commit field if we lost events
3907 */ 3909 */
3908 if (missed_events) { 3910 if (missed_events) {
3909 commit = local_read(&bpage->commit);
3910
3911 /* If there is room at the end of the page to save the 3911 /* If there is room at the end of the page to save the
3912 * missed events, then record it there. 3912 * missed events, then record it there.
3913 */ 3913 */
@@ -3915,10 +3915,17 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
3915 memcpy(&bpage->data[commit], &missed_events, 3915 memcpy(&bpage->data[commit], &missed_events,
3916 sizeof(missed_events)); 3916 sizeof(missed_events));
3917 local_add(RB_MISSED_STORED, &bpage->commit); 3917 local_add(RB_MISSED_STORED, &bpage->commit);
3918 commit += sizeof(missed_events);
3918 } 3919 }
3919 local_add(RB_MISSED_EVENTS, &bpage->commit); 3920 local_add(RB_MISSED_EVENTS, &bpage->commit);
3920 } 3921 }
3921 3922
3923 /*
3924 * This page may be off to user land. Zero it out here.
3925 */
3926 if (commit < BUF_PAGE_SIZE)
3927 memset(&bpage->data[commit], 0, BUF_PAGE_SIZE - commit);
3928
3922 out_unlock: 3929 out_unlock:
3923 spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); 3930 spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
3924 3931
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index ba0ec81158b2..95d0b1a28f93 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3661,7 +3661,6 @@ tracing_buffers_read(struct file *filp, char __user *ubuf,
3661 size_t count, loff_t *ppos) 3661 size_t count, loff_t *ppos)
3662{ 3662{
3663 struct ftrace_buffer_info *info = filp->private_data; 3663 struct ftrace_buffer_info *info = filp->private_data;
3664 unsigned int pos;
3665 ssize_t ret; 3664 ssize_t ret;
3666 size_t size; 3665 size_t size;
3667 3666
@@ -3688,11 +3687,6 @@ tracing_buffers_read(struct file *filp, char __user *ubuf,
3688 if (ret < 0) 3687 if (ret < 0)
3689 return 0; 3688 return 0;
3690 3689
3691 pos = ring_buffer_page_len(info->spare);
3692
3693 if (pos < PAGE_SIZE)
3694 memset(info->spare + pos, 0, PAGE_SIZE - pos);
3695
3696read: 3690read:
3697 size = PAGE_SIZE - info->read; 3691 size = PAGE_SIZE - info->read;
3698 if (size > count) 3692 if (size > count)