summaryrefslogtreecommitdiffstats
path: root/tools/perf/util/symbol.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/symbol.c')
-rw-r--r--tools/perf/util/symbol.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index f8a30686520..8e7d74ff6ba 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1089,8 +1089,12 @@ restart:
if (symsrc__init(&ss, dso, name, symtab_type) < 0)
continue;
- ret = dso__load_sym(dso, map, &ss, filter, 0,
- want_symtab);
+ if (want_symtab && !symsrc__has_symtab(&ss)) {
+ symsrc__destroy(&ss);
+ continue;
+ }
+
+ ret = dso__load_sym(dso, map, &ss, filter, 0);
/*
* Some people seem to have debuginfo files _WITHOUT_ debug
@@ -1376,7 +1380,7 @@ int dso__load_vmlinux(struct dso *dso, struct map *map,
if (symsrc__init(&ss, dso, symfs_vmlinux, symtab_type))
return -1;
- err = dso__load_sym(dso, map, &ss, filter, 0, 0);
+ err = dso__load_sym(dso, map, &ss, filter, 0);
symsrc__destroy(&ss);
if (err > 0) {