diff options
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r-- | kernel/trace/ring_buffer.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 31a9edd7aa93..b95381ebdd5e 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -3357,21 +3357,16 @@ static void rb_iter_reset(struct ring_buffer_iter *iter) | |||
3357 | struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer; | 3357 | struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer; |
3358 | 3358 | ||
3359 | /* Iterator usage is expected to have record disabled */ | 3359 | /* Iterator usage is expected to have record disabled */ |
3360 | if (list_empty(&cpu_buffer->reader_page->list)) { | 3360 | iter->head_page = cpu_buffer->reader_page; |
3361 | iter->head_page = rb_set_head_page(cpu_buffer); | 3361 | iter->head = cpu_buffer->reader_page->read; |
3362 | if (unlikely(!iter->head_page)) | 3362 | |
3363 | return; | 3363 | iter->cache_reader_page = iter->head_page; |
3364 | iter->head = iter->head_page->read; | 3364 | iter->cache_read = iter->head; |
3365 | } else { | 3365 | |
3366 | iter->head_page = cpu_buffer->reader_page; | ||
3367 | iter->head = cpu_buffer->reader_page->read; | ||
3368 | } | ||
3369 | if (iter->head) | 3366 | if (iter->head) |
3370 | iter->read_stamp = cpu_buffer->read_stamp; | 3367 | iter->read_stamp = cpu_buffer->read_stamp; |
3371 | else | 3368 | else |
3372 | iter->read_stamp = iter->head_page->page->time_stamp; | 3369 | iter->read_stamp = iter->head_page->page->time_stamp; |
3373 | iter->cache_reader_page = cpu_buffer->reader_page; | ||
3374 | iter->cache_read = cpu_buffer->read; | ||
3375 | } | 3370 | } |
3376 | 3371 | ||
3377 | /** | 3372 | /** |