diff options
author | Steven Rostedt <rostedt@goodmis.org> | 2008-10-02 19:18:09 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-14 04:39:15 -0400 |
commit | aa1e0e3bcf95ce684d005bedb16e5d4559455685 (patch) | |
tree | 579416746452a880ca42de6c2885419e49a44e45 /kernel/trace/ring_buffer.c | |
parent | eb7fa935274bb233686fdf7a53f40c5d9ee76ed6 (diff) |
ring_buffer: map to cpu not page
My original patch had a compile bug when NUMA was configured. I
referenced cpu when it should have been cpu_buffer->cpu.
Ingo quickly fixed this bug by replacing cpu with 'i' because that
was the loop counter. Unfortunately, the 'i' was the counter of
pages, not CPUs. This caused a crash when the number of pages allocated
for the buffers exceeded the number of pages, which would usually
be the case.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r-- | kernel/trace/ring_buffer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 54a30986493a..6b8dac02364f 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -232,7 +232,7 @@ static int rb_allocate_pages(struct ring_buffer_per_cpu *cpu_buffer, | |||
232 | 232 | ||
233 | for (i = 0; i < nr_pages; i++) { | 233 | for (i = 0; i < nr_pages; i++) { |
234 | page = kzalloc_node(ALIGN(sizeof(*page), cache_line_size()), | 234 | page = kzalloc_node(ALIGN(sizeof(*page), cache_line_size()), |
235 | GFP_KERNEL, cpu_to_node(i)); | 235 | GFP_KERNEL, cpu_to_node(cpu_buffer->cpu)); |
236 | if (!page) | 236 | if (!page) |
237 | goto free_pages; | 237 | goto free_pages; |
238 | list_add(&page->list, &pages); | 238 | list_add(&page->list, &pages); |