From 869ec0c230c37a50be289bc154d109a2cba1dd6c Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 29 Apr 2009 00:23:13 -0400 Subject: [PATCH] --- yaml --- r: 146067 b: refs/heads/master c: 93459c6cb9816c52200993d29dd18cea1daee335 h: refs/heads/master i: 146065: 6d6b53b4eebe87c42ef0932136e66c5607e6ce25 146063: 6558792c164b9b81f841f54319b4cf28d1d51dce v: v3 --- [refs] | 2 +- trunk/kernel/trace/trace.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index d6fc4586fe51..2f02af4b0ac3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5beae6efd1004b44c3e257dc96087978e4c763c1 +refs/heads/master: 93459c6cb9816c52200993d29dd18cea1daee335 diff --git a/trunk/kernel/trace/trace.c b/trunk/kernel/trace/trace.c index 9058240c85ca..0aeb3b93414e 100644 --- a/trunk/kernel/trace/trace.c +++ b/trunk/kernel/trace/trace.c @@ -3508,7 +3508,7 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos, .spd_release = buffer_spd_release, }; struct buffer_ref *ref; - int size, i; + int entries, size, i; size_t ret; if (*ppos & (PAGE_SIZE - 1)) { @@ -3523,7 +3523,9 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos, len &= PAGE_MASK; } - for (i = 0; i < PIPE_BUFFERS && len; i++, len -= PAGE_SIZE) { + entries = ring_buffer_entries_cpu(info->tr->buffer, info->cpu); + + for (i = 0; i < PIPE_BUFFERS && len && entries; i++, len -= PAGE_SIZE) { struct page *page; int r; @@ -3564,6 +3566,8 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos, spd.partial[i].private = (unsigned long)ref; spd.nr_pages++; *ppos += PAGE_SIZE; + + entries = ring_buffer_entries_cpu(info->tr->buffer, info->cpu); } spd.nr_pages = i;