summaryrefslogtreecommitdiffstats
path: root/kernel/trace/ring_buffer.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-05 10:21:49 +0100
committerIngo Molnar <mingo@elte.hu>2009-03-05 10:21:49 +0100
commit53664738c122bfe8b0e489fddaf2ab265c9133c8 (patch)
tree8121a9fc4021e86499c404e0b1012a36e8d0b00e /kernel/trace/ring_buffer.c
parentc4ef144a9d0803eb0a2d4110ae87e7f34e667ded (diff)
parente9d25fe6eaa2c720bb3ea661b660e58d54fa38bf (diff)
downloadkernel-crypto-53664738c122bfe8b0e489fddaf2ab265c9133c8.tar.gz
kernel-crypto-53664738c122bfe8b0e489fddaf2ab265c9133c8.tar.xz
kernel-crypto-53664738c122bfe8b0e489fddaf2ab265c9133c8.zip
Merge branch 'tip/tracing/ftrace' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r--kernel/trace/ring_buffer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index f2a163db52f..f7473645b9c 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -2461,6 +2461,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
unsigned long flags;
unsigned int commit;
unsigned int read;
+ u64 save_timestamp;
int ret = -1;
/*
@@ -2515,6 +2516,9 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
if (len < size)
goto out;
+ /* save the current timestamp, since the user will need it */
+ save_timestamp = cpu_buffer->read_stamp;
+
/* Need to copy one event at a time */
do {
memcpy(bpage->data + pos, rpage->data + rpos, size);
@@ -2531,7 +2535,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
/* update bpage */
local_set(&bpage->commit, pos);
- bpage->time_stamp = rpage->time_stamp;
+ bpage->time_stamp = save_timestamp;
/* we copied everything to the beginning */
read = 0;