[PATCH perf/core v7 02/21] perf buildid: Fix to set correct dso name for kallsyms

From: Masami Hiramatsu
Date: Wed May 11 2016 - 09:51:50 EST


Fix to set correct dso name ("[kernel.kallsyms]") for
kallsyms, as for vdso does.

Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
---
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;
}