[Crash-utility] [PATCH 2/2] ARM: unwind: limit unwinding to the kernel text

Mika Westerberg ext-mika.1.westerberg at nokia.com
Mon Dec 20 13:00:29 UTC 2010


Currently we might get following warning while unwinding the stack:

PID: 0      TASK: 40471790  CPU: 0   COMMAND: "swapper"
 #0 [<403396b0>] (schedule) from [<4002e978>]
 #1 [<4002e978>] (cpu_idle) from [<40008930>]
 #2 [<40008930>] (start_kernel) from [<80008034>]
bt: WARNING: UNWIND: cannot find index for 80008034

This is due the fact that we didn't limit the stack unwinding to the
kernel (and modules) text.

Fix this by adding limit to the kernel text only.

Signed-off-by: Mika Westerberg <ext-mika.1.westerberg at nokia.com>
---
 unwind_arm.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/unwind_arm.c b/unwind_arm.c
index cc5eb7c..58fb5da 100644
--- a/unwind_arm.c
+++ b/unwind_arm.c
@@ -592,6 +592,9 @@ unwind_frame(struct stackframe *frame, ulong stacktop)
 	low = frame->sp;
 	high = stacktop;
 
+	if (!is_kernel_text(frame->pc))
+		return FALSE;
+
 	tbl = search_table(frame->pc);
 	if (!tbl) {
 		error(WARNING, "UNWIND: cannot find unwind table for %lx\n",
-- 
1.7.3.2




More information about the Crash-utility mailing list