All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3.17-rc4] trace: kdb: Fix kernel panic during ftdump
@ 2014-09-10 14:44 Daniel Thompson
  2014-09-24 10:32 ` [PATCH 3.17-rc4 v2 0/2] trace: kdb: Bug fixes for ftdump Daniel Thompson
  0 siblings, 1 reply; 22+ messages in thread
From: Daniel Thompson @ 2014-09-10 14:44 UTC (permalink / raw)
  To: Steven Rostedt, Ingo Molnar
  Cc: Daniel Thompson, linux-kernel, patches, linaro-kernel,
	John Stultz, Sumit Semwal, Jason Wessel

Currently kdb's ftdump command unconditionally crashes due to a null
pointer de-reference whenever the command is run. This in turn causes
the kernel to panic.

The abridged stacktrace (gathered with ARCH=arm) is:
--- cut here ---
[<c09535ac>] (panic) from [<c02132dc>] (die+0x264/0x440)
[<c02132dc>] (die) from [<c0952eb8>]
(__do_kernel_fault.part.11+0x74/0x84)
[<c0952eb8>] (__do_kernel_fault.part.11) from [<c021f954>]
(do_page_fault+0x1d0/0x3c4)
[<c021f954>] (do_page_fault) from [<c020846c>] (do_DataAbort+0x48/0xac)

[<c020846c>] (do_DataAbort) from [<c0213c58>] (__dabt_svc+0x38/0x60)
Exception stack(0xc0deba88 to 0xc0debad0)
ba80:                   e8c29180 00000001 e9854304 e9854300 c0f567d8
c0df2580
baa0: 00000000 00000000 00000000 c0f117b8 c0e3a3c0 c0debb0c 00000000
c0debad0
bac0: 0000672e c02f4d60 60000193 ffffffff
[<c0213c58>] (__dabt_svc) from [<c02f4d60>] (kdb_ftdump+0x1e4/0x3d8)
[<c02f4d60>] (kdb_ftdump) from [<c02ce328>] (kdb_parse+0x2b8/0x698)
[<c02ce328>] (kdb_parse) from [<c02ceef0>] (kdb_main_loop+0x52c/0x784)
[<c02ceef0>] (kdb_main_loop) from [<c02d1b0c>] (kdb_stub+0x238/0x490)
--- cut here ---

The NULL deref occurs due to the initialized use of struct trace_iter's
buffer_iter member.

This patch solves this by providing a collection of ring_buffer_iter(s)
and using this to initialized buffer_iter. Note that static allocation
is used solely because the trace_iter itself is also static allocated.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@redhat.com>
---
 kernel/trace/trace_kdb.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/trace/trace_kdb.c b/kernel/trace/trace_kdb.c
index bd90e1b..989288a 100644
--- a/kernel/trace/trace_kdb.c
+++ b/kernel/trace/trace_kdb.c
@@ -20,10 +20,12 @@ static void ftrace_dump_buf(int skip_lines, long cpu_file)
 {
 	/* use static because iter can be a bit big for the stack */
 	static struct trace_iterator iter;
+	static struct ring_buffer_iter *buffer_iter[CONFIG_NR_CPUS];
 	unsigned int old_userobj;
 	int cnt = 0, cpu;

 	trace_init_global_iter(&iter);
+	iter.buffer_iter = buffer_iter;

 	for_each_tracing_cpu(cpu) {
 		atomic_inc(&per_cpu_ptr(iter.trace_buffer->data, cpu)->disabled);
--
1.9.3


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

end of thread, other threads:[~2014-11-14 12:35 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-10 14:44 [PATCH 3.17-rc4] trace: kdb: Fix kernel panic during ftdump Daniel Thompson
2014-09-24 10:32 ` [PATCH 3.17-rc4 v2 0/2] trace: kdb: Bug fixes for ftdump Daniel Thompson
2014-09-24 10:33   ` [PATCH 3.17-rc4 v2 1/2] trace: kdb: Fix kernel panic during ftdump Daniel Thompson
2014-09-24 10:33   ` [PATCH 3.17-rc4 v2 2/2] trace: kdb: Fix kernel livelock with empty buffers Daniel Thompson
2014-09-24 15:07   ` [PATCH 3.17-rc4 v2 0/2] trace: kdb: Bug fixes for ftdump Steven Rostedt
2014-09-24 15:09     ` Daniel Thompson
2014-11-06 12:41   ` [PATCH RESEND 3.18-rc3 " Daniel Thompson
2014-11-06 12:41     ` [PATCH RESEND 3.18-rc3 v2 1/2] trace: kdb: Fix kernel panic during ftdump Daniel Thompson
2014-11-14  2:26       ` Steven Rostedt
2014-11-14  9:08         ` Daniel Thompson
2014-11-14 11:59           ` Steven Rostedt
2014-11-14 12:13             ` Daniel Thompson
2014-11-14 12:31               ` Steven Rostedt
2014-11-14 12:35                 ` Steven Rostedt
2014-11-06 12:41     ` [PATCH RESEND 3.18-rc3 v2 2/2] trace: kdb: Fix kernel livelock with empty buffers Daniel Thompson
2014-11-06 13:27     ` [PATCH RESEND 3.18-rc3 v2 0/2] trace: kdb: Bug fixes for ftdump Steven Rostedt
2014-11-10  9:41       ` Daniel Thompson
2014-11-14  2:16         ` Steven Rostedt
2014-11-14 11:03           ` Daniel Thompson
2014-11-14 11:21     ` [PATCH 3.18-rc3 v3 " Daniel Thompson
2014-11-14 11:21       ` [PATCH 3.18-rc3 v3 1/2] trace: kdb: Fix kernel panic during ftdump Daniel Thompson
2014-11-14 11:21       ` [PATCH 3.18-rc3 v3 2/2] trace: kdb: Fix kernel livelock with empty buffers Daniel Thompson

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.