aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2010-10-14 16:46:22 -0400
committerChris Metcalf <cmetcalf@tilera.com>2010-10-15 15:39:25 -0400
commitc569cac8b69397d8bc80f95bc6edf13ed902e28b (patch)
tree9a51659777f876f401189fe17d35c69430a91797 /arch
parent29507663dfa2590647a1ef66f3652a0cac033eca (diff)
downloadmrst-s0i3-test-c569cac8b69397d8bc80f95bc6edf13ed902e28b.tar.gz
mrst-s0i3-test-c569cac8b69397d8bc80f95bc6edf13ed902e28b.tar.xz
mrst-s0i3-test-c569cac8b69397d8bc80f95bc6edf13ed902e28b.zip
arch/tile: support new info op generated by compiler
This just syncs the backtracing support in the kernel to the upstream backtrace library. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/tile/include/asm/backtrace.h5
-rw-r--r--arch/tile/kernel/backtrace.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/tile/include/asm/backtrace.h b/arch/tile/include/asm/backtrace.h
index 758ca4619d5..f18887d8239 100644
--- a/arch/tile/include/asm/backtrace.h
+++ b/arch/tile/include/asm/backtrace.h
@@ -146,7 +146,10 @@ enum {
CALLER_SP_IN_R52_BASE = 4,
- CALLER_SP_OFFSET_BASE = 8
+ CALLER_SP_OFFSET_BASE = 8,
+
+ /* Marks the entry point of certain functions. */
+ ENTRY_POINT_INFO_OP = 16
};
diff --git a/arch/tile/kernel/backtrace.c b/arch/tile/kernel/backtrace.c
index d3c41c1ff6b..55a6a74974b 100644
--- a/arch/tile/kernel/backtrace.c
+++ b/arch/tile/kernel/backtrace.c
@@ -369,6 +369,10 @@ static void find_caller_pc_and_caller_sp(CallerLocation *location,
/* Weird; reserved value, ignore it. */
continue;
}
+ if (info_operand & ENTRY_POINT_INFO_OP) {
+ /* This info op is ignored by the backtracer. */
+ continue;
+ }
/* Skip info ops which are not in the
* "one_ago" mode we want right now.