diff options
-rw-r--r-- | kernel/trace/ring_buffer.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 7f6059c5aa94..b0702ff78218 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -1768,6 +1768,14 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer, | |||
1768 | * must fill the old tail_page with padding. | 1768 | * must fill the old tail_page with padding. |
1769 | */ | 1769 | */ |
1770 | if (tail >= BUF_PAGE_SIZE) { | 1770 | if (tail >= BUF_PAGE_SIZE) { |
1771 | /* | ||
1772 | * If the page was filled, then we still need | ||
1773 | * to update the real_end. Reset it to zero | ||
1774 | * and the reader will ignore it. | ||
1775 | */ | ||
1776 | if (tail == BUF_PAGE_SIZE) | ||
1777 | tail_page->real_end = 0; | ||
1778 | |||
1771 | local_sub(length, &tail_page->write); | 1779 | local_sub(length, &tail_page->write); |
1772 | return; | 1780 | return; |
1773 | } | 1781 | } |