perf annotate: Use dso__decompress_kmodule_path()

Convert open-coded decompress routine to use the function.

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-5-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Namhyung Kim 2017-06-08 16:31:04 +09:00 committed by Arnaldo Carvalho de Melo
parent 42b3fa6708
commit 3c84fd5304
1 changed files with 3 additions and 24 deletions

View File

@ -1431,31 +1431,10 @@ int symbol__disassemble(struct symbol *sym, struct map *map, const char *arch_na
sizeof(symfs_filename)); sizeof(symfs_filename));
} }
} else if (dso__needs_decompress(dso)) { } else if (dso__needs_decompress(dso)) {
char tmp[PATH_MAX]; char tmp[KMOD_DECOMP_LEN];
struct kmod_path m;
int fd;
bool ret;
if (kmod_path__parse_ext(&m, symfs_filename)) if (dso__decompress_kmodule_path(dso, symfs_filename,
goto out; tmp, sizeof(tmp)) < 0)
snprintf(tmp, PATH_MAX, "/tmp/perf-kmod-XXXXXX");
fd = mkstemp(tmp);
if (fd < 0) {
free(m.ext);
goto out;
}
ret = decompress_to_file(m.ext, symfs_filename, fd);
if (ret)
pr_err("Cannot decompress %s %s\n", m.ext, symfs_filename);
free(m.ext);
close(fd);
if (!ret)
goto out; goto out;
strcpy(symfs_filename, tmp); strcpy(symfs_filename, tmp);