ARM: stacktrace: avoid listing stacktrace functions in stacktrace
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 3 May 2014 10:03:28 +0000 (11:03 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 22 May 2014 15:33:19 +0000 (16:33 +0100)
commit3683f44c42e991d313dc301504ee0fca1aeb8580
tree8be709a8e9f72c0aff6fbc25222eac14146233a8
parentdeace4a6b440f2e05f3e073338b28901d02a15c9
ARM: stacktrace: avoid listing stacktrace functions in stacktrace

While debugging the FEC ethernet driver using stacktrace, it was noticed
that the stacktraces always begin as follows:

 [<c00117b4>] save_stack_trace_tsk+0x0/0x98
 [<c0011870>] save_stack_trace+0x24/0x28
 ...

This is because the stack trace code includes the stack frames for itself.
This is incorrect behaviour, and also leads to "skip" doing the wrong
thing (which is the number of stack frames to avoid recording.)

Perversely, it does the right thing when passed a non-current thread.  Fix
this by ensuring that we have a known constant number of frames above the
main stack trace function, and always skip these.

Cc: <stable@vger.kernel.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/stacktrace.c