diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index cf2e6f428bb4d9f38917d3176de05bf5a64eafe8..82a1aadc245f1c703b2c56d0663e0e1d277370a3 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -982,7 +982,7 @@ int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss, /* 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) && + (GELF_ST_TYPE(sym.st_info) == STT_FUNC) && (sym.st_value & 1)) --sym.st_value;