mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
tracing: Fix nr_subbufs initialization in simple_ring_buffer_init_mm()
nr_subbufs in the ring buffer metadata is always initialized to zero
because it is assigned from cpu_buffer->nr_pages before the page
initialization loop has run. While nr_subbufs is not currently read
by the kernel, it should reflect the actual buffer geometry in the
meta page for correctness.
Move the assignment after the page loop so that cpu_buffer->nr_pages
holds the final count.
Link: https://patch.msgid.link/20260512135420.99194-1-devnexen@gmail.com
Fixes: 34e5b958bd ("tracing: Introduce simple_ring_buffer")
Reviewed-by: Vincent Donnefort <vdonnefort@google.com>
Assisted-by: Claude:claude-opus-4-7
Signed-off-by: David Carlier <devnexen@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
a494d3c8d5
commit
c2d2856cf6
|
|
@ -395,7 +395,6 @@ int simple_ring_buffer_init_mm(struct simple_rb_per_cpu *cpu_buffer,
|
|||
|
||||
memset(cpu_buffer->meta, 0, sizeof(*cpu_buffer->meta));
|
||||
cpu_buffer->meta->meta_page_size = PAGE_SIZE;
|
||||
cpu_buffer->meta->nr_subbufs = cpu_buffer->nr_pages;
|
||||
|
||||
/* The reader page is not part of the ring initially */
|
||||
page = load_page(desc->page_va[0]);
|
||||
|
|
@ -437,6 +436,7 @@ int simple_ring_buffer_init_mm(struct simple_rb_per_cpu *cpu_buffer,
|
|||
return ret;
|
||||
}
|
||||
|
||||
cpu_buffer->meta->nr_subbufs = cpu_buffer->nr_pages;
|
||||
/* Close the ring */
|
||||
bpage->link.next = &cpu_buffer->tail_page->link;
|
||||
cpu_buffer->tail_page->link.prev = &bpage->link;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user