diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index e680371bd5c9b79ca27e47a2f55889606af872ce..9ba6e49ead62976855cfbeff3330d50cb96f1159 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -1136,8 +1136,7 @@ int dso__load_sym(struct dso *dso, struct map *map, * For misannotated, zeroed, ASM function sizes. */ if (nr > 0) { - if (!symbol_conf.allow_aliases) - symbols__fixup_duplicate(&dso->symbols[map->type]); + symbols__fixup_duplicate(&dso->symbols[map->type]); symbols__fixup_end(&dso->symbols[map->type]); if (kmap) { /* diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 863d69c45b8a8a7cfef6b2f327180e0aef274aa0..ef2f913de662e34332018f6cb8e02a0fc0854e43 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -153,6 +153,9 @@ void symbols__fixup_duplicate(struct rb_root *symbols) struct rb_node *nd; struct symbol *curr, *next; + if (symbol_conf.allow_aliases) + return; + nd = rb_first(symbols); while (nd) {