diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-09-14 18:15:29 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-09-14 18:15:29 +0400 |
commit | f3fbba6efbab93b9850821d41a75b02286d18315 (patch) | |
tree | e2a680674d334c6e455d1a89a4dbfc3f549cb6d1 /tools/perf/util/symbol.c | |
parent | 15c5ab607045e278ebf4d2ca4aea2250617d50ca (diff) | |
parent | 147fcf1c211f1a87bf4d0711b7e9637f3d6ce080 (diff) | |
download | linux-f3fbba6efbab93b9850821d41a75b02286d18315.tar.xz |
Merge branch 'fix/misc' into topic/misc
Diffstat (limited to 'tools/perf/util/symbol.c')
-rw-r--r-- | tools/perf/util/symbol.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 1a367734e016..b2f5ae97f33d 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -2268,6 +2268,9 @@ static int setup_list(struct strlist **list, const char *list_str, int symbol__init(void) { + if (symbol_conf.initialized) + return 0; + elf_version(EV_CURRENT); if (symbol_conf.sort_by_name) symbol_conf.priv_size += (sizeof(struct symbol_name_rb_node) - @@ -2293,6 +2296,7 @@ int symbol__init(void) symbol_conf.sym_list_str, "symbol") < 0) goto out_free_comm_list; + symbol_conf.initialized = true; return 0; out_free_dso_list: @@ -2304,11 +2308,14 @@ out_free_comm_list: void symbol__exit(void) { + if (!symbol_conf.initialized) + return; strlist__delete(symbol_conf.sym_list); strlist__delete(symbol_conf.dso_list); strlist__delete(symbol_conf.comm_list); vmlinux_path__exit(); symbol_conf.sym_list = symbol_conf.dso_list = symbol_conf.comm_list = NULL; + symbol_conf.initialized = false; } int machines__create_kernel_maps(struct rb_root *self, pid_t pid) |