Commit-ID:  c97b40e4d15f13a36cd037d598e45cbe9e1e5757
Gitweb:     http://git.kernel.org/tip/c97b40e4d15f13a36cd037d598e45cbe9e1e5757
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Thu, 1 Sep 2016 10:56:06 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Thu, 1 Sep 2016 12:42:24 -0300

perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too

We can allow aliases to be kept, but we were checking this just when
loading vmlinux files, be consistent, do it for any symbol table loading
code that calls symbol__fixup_duplicate() by making this function check
.allow_aliases instead.

Cc: Adrian Hunter <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Masami Hiramatsu <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Wang Nan <[email protected]>
Fixes: 680d926a8cb0 ("perf symbols: Allow symbol alias when loading map for 
symbol name")
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/util/symbol-elf.c | 3 +--
 tools/perf/util/symbol.c     | 3 +++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index e680371..9ba6e49 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -1136,8 +1136,7 @@ new_symbol:
         * 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 863d69c..ef2f913 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) {

Reply via email to