diff options
author | Namhyung Kim <namhyung@kernel.org> | 2017-06-08 03:31:08 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2017-06-08 14:39:26 -0400 |
commit | c25ec42f846f702f8f532fbc890171e3a1f6ec85 (patch) | |
tree | aa5ee22b3fc0ca2ea79a793cbe5409abf16ef7d0 | |
parent | 94df1040b1e6aacd8dec0ba3c61d7e77cd695f26 (diff) |
perf symbols: Keep DSO->symtab_type after decompress
The symsrc__init() overwrites dso->symtab_type as symsrc->type in
dso__load_sym(). But for compressed kernel modules in the build-id
cache, it should have original symtab type to be decompressed as needed.
This fixes perf annotate to show disassembly of the function properly.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: kernel-team@lge.com
Link: http://lkml.kernel.org/r/20170608073109.30699-9-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/util/symbol-elf.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index d342e771dbad..502505cf236a 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c | |||
@@ -671,6 +671,8 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, | |||
671 | fd = dso__decompress_kmodule_fd(dso, name); | 671 | fd = dso__decompress_kmodule_fd(dso, name); |
672 | if (fd < 0) | 672 | if (fd < 0) |
673 | return -1; | 673 | return -1; |
674 | |||
675 | type = dso->symtab_type; | ||
674 | } else { | 676 | } else { |
675 | fd = open(name, O_RDONLY); | 677 | fd = open(name, O_RDONLY); |
676 | if (fd < 0) { | 678 | if (fd < 0) { |