summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2010-10-14 22:46:22 +0200
committerChris Metcalf <cmetcalf@tilera.com>2010-10-15 21:39:25 +0200
commitc569cac8b69397d8bc80f95bc6edf13ed902e28b (patch)
tree9a51659777f876f401189fe17d35c69430a91797
parentarch/tile: minor whitespace/naming changes for string support files (diff)
downloadlinux-c569cac8b69397d8bc80f95bc6edf13ed902e28b.tar.xz
linux-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>
-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 758ca4619d50..f18887d82399 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 d3c41c1ff6bd..55a6a74974b4 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.