Em Wed, May 11, 2016 at 10:51:37PM +0900, Masami Hiramatsu escreveu: > Fix to set correct dso name ("[kernel.kallsyms]") for > kallsyms, as for vdso does.
Can you rewrite the above comment and also break this down in two patches, probably decribing what is the problem that it fixes? - Arnaldo > Signed-off-by: Masami Hiramatsu <mhira...@kernel.org> > --- > tools/perf/util/build-id.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c > index b6ecf87..234d8a1 100644 > --- a/tools/perf/util/build-id.c > +++ b/tools/perf/util/build-id.c > @@ -343,21 +343,25 @@ void disable_buildid_cache(void) > static char *build_id_cache__dirname_from_path(const char *name, > bool is_kallsyms, bool is_vdso) > { > - char *realname = (char *)name, *filename; > + const char *realname = name; > + char *filename; > bool slash = is_kallsyms || is_vdso; > > if (!slash) { > realname = realpath(name, NULL); > if (!realname) > return NULL; > - } > + } else if (is_vdso) > + realname = DSO__NAME_VDSO; > + else > + realname = "[kernel.kallsyms]"; > > if (asprintf(&filename, "%s%s%s", buildid_dir, slash ? "/" : "", > - is_vdso ? DSO__NAME_VDSO : realname) < 0) > + realname) < 0) > filename = NULL; > > if (!slash) > - free(realname); > + free((char *)realname); > > return filename; > }