aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2011-01-22 11:08:52 +0100
committerIngo Molnar <mingo@elte.hu>2011-01-22 11:08:52 +0100
commit01bb2dc4e47639c8e7eddb1718720a051bcdc955 (patch)
tree8ae801b13346c32fbca5555862411c74be902266 /tools/perf/util
parentperf: perf_event_exit_task_context: s/rcu_dereference/rcu_dereference_raw/ (diff)
parentperf test: Use cpu_map->[cpu] when setting affinity (diff)
downloadlinux-dev-01bb2dc4e47639c8e7eddb1718720a051bcdc955.tar.xz
linux-dev-01bb2dc4e47639c8e7eddb1718720a051bcdc955.zip
Merge branch 'perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 into perf/urgent
Diffstat (limited to '')
-rw-r--r--tools/perf/util/symbol.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 15ccfba8cdf8..e32478effed8 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1161,6 +1161,13 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name,
section_name = elf_sec__name(&shdr, secstrs);
+ /* On ARM, symbols for thumb functions have 1 added to
+ * the symbol address as a flag - remove it */
+ if ((ehdr.e_machine == EM_ARM) &&
+ (map->type == MAP__FUNCTION) &&
+ (sym.st_value & 1))
+ --sym.st_value;
+
if (self->kernel != DSO_TYPE_USER || kmodule) {
char dso_name[PATH_MAX];