All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tracing: Fix crash due to uninitialized new_pages list head
@ 2012-06-22 18:50 Vaibhav Nagarnaik
  2012-06-22 18:54 ` Vaibhav Nagarnaik
  2012-07-06 11:01 ` [tip:perf/urgent] ring-buffer: " tip-bot for Vaibhav Nagarnaik
  0 siblings, 2 replies; 3+ messages in thread
From: Vaibhav Nagarnaik @ 2012-06-22 18:50 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Justin Teravest, David Sharp, linux-kernel, Vaibhav Nagarnaik

The new_pages list head in the cpu_buffer is not initialized. When
adding pages to the ring buffer, if the memory allocation fails in
ring_buffer_resize, the clean up handler tries to free up the allocated
pages from all the cpu buffers. The panic is caused by referencing the
uninitialized new_pages list head.

Initializing the new_pages list head in rb_allocate_cpu_buffer fixes
this.

Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
---
 kernel/trace/ring_buffer.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index a2bec4c..c5a5479 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -1075,6 +1075,7 @@ rb_allocate_cpu_buffer(struct ring_buffer *buffer, int nr_pages, int cpu)
 	rb_init_page(bpage->page);
 
 	INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
+	INIT_LIST_HEAD(&cpu_buffer->new_pages);
 
 	ret = rb_allocate_pages(cpu_buffer, nr_pages);
 	if (ret < 0)
-- 
1.7.7.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] tracing: Fix crash due to uninitialized new_pages list head
  2012-06-22 18:50 [PATCH] tracing: Fix crash due to uninitialized new_pages list head Vaibhav Nagarnaik
@ 2012-06-22 18:54 ` Vaibhav Nagarnaik
  2012-07-06 11:01 ` [tip:perf/urgent] ring-buffer: " tip-bot for Vaibhav Nagarnaik
  1 sibling, 0 replies; 3+ messages in thread
From: Vaibhav Nagarnaik @ 2012-06-22 18:54 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Justin Teravest, David Sharp, linux-kernel, Vaibhav Nagarnaik

On Fri, Jun 22, 2012 at 11:50 AM, Vaibhav Nagarnaik
<vnagarnaik@google.com> wrote:
> The new_pages list head in the cpu_buffer is not initialized. When
> adding pages to the ring buffer, if the memory allocation fails in
> ring_buffer_resize, the clean up handler tries to free up the allocated
> pages from all the cpu buffers. The panic is caused by referencing the
> uninitialized new_pages list head.
>
> Initializing the new_pages list head in rb_allocate_cpu_buffer fixes
> this.
>
> Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
> ---

Hi Steven,

I believe this fix should be pushed to 3.5 along with the other patch
I sent earlier:
tracing: Update entries counter when removing pages

These two patches fix issues with the recently added atomic resize patches.


Thanks

Vaibhav Nagarnaik

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [tip:perf/urgent] ring-buffer: Fix crash due to uninitialized new_pages list head
  2012-06-22 18:50 [PATCH] tracing: Fix crash due to uninitialized new_pages list head Vaibhav Nagarnaik
  2012-06-22 18:54 ` Vaibhav Nagarnaik
@ 2012-07-06 11:01 ` tip-bot for Vaibhav Nagarnaik
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Vaibhav Nagarnaik @ 2012-07-06 11:01 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, vnagarnaik, hpa, mingo, rostedt, dhsharp, tglx, teravest

Commit-ID:  44b99462d9d776522e174d6c531ce5ccef309e26
Gitweb:     http://git.kernel.org/tip/44b99462d9d776522e174d6c531ce5ccef309e26
Author:     Vaibhav Nagarnaik <vnagarnaik@google.com>
AuthorDate: Fri, 22 Jun 2012 11:50:05 -0700
Committer:  Steven Rostedt <rostedt@goodmis.org>
CommitDate: Fri, 29 Jun 2012 16:16:35 -0400

ring-buffer: Fix crash due to uninitialized new_pages list head

The new_pages list head in the cpu_buffer is not initialized. When
adding pages to the ring buffer, if the memory allocation fails in
ring_buffer_resize, the clean up handler tries to free up the allocated
pages from all the cpu buffers. The panic is caused by referencing the
uninitialized new_pages list head.

Initializing the new_pages list head in rb_allocate_cpu_buffer fixes
this.

Link: http://lkml.kernel.org/r/1340391005-10880-1-git-send-email-vnagarnaik@google.com

Cc: Justin Teravest <teravest@google.com>
Cc: David Sharp <dhsharp@google.com>
Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 kernel/trace/ring_buffer.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index 1d0f6a8..ba39cba 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -1075,6 +1075,7 @@ rb_allocate_cpu_buffer(struct ring_buffer *buffer, int nr_pages, int cpu)
 	rb_init_page(bpage->page);
 
 	INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
+	INIT_LIST_HEAD(&cpu_buffer->new_pages);
 
 	ret = rb_allocate_pages(cpu_buffer, nr_pages);
 	if (ret < 0)

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-07-06 11:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-22 18:50 [PATCH] tracing: Fix crash due to uninitialized new_pages list head Vaibhav Nagarnaik
2012-06-22 18:54 ` Vaibhav Nagarnaik
2012-07-06 11:01 ` [tip:perf/urgent] ring-buffer: " tip-bot for Vaibhav Nagarnaik

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.