|
@@ -496,19 +496,22 @@ static int symbol__in_kernel(void *arg, const char *name,
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+static void machine__get_kallsyms_filename(struct machine *machine, char *buf,
|
|
|
+ size_t bufsz)
|
|
|
+{
|
|
|
+ if (machine__is_default_guest(machine))
|
|
|
+ scnprintf(buf, bufsz, "%s", symbol_conf.default_guest_kallsyms);
|
|
|
+ else
|
|
|
+ scnprintf(buf, bufsz, "%s/proc/kallsyms", machine->root_dir);
|
|
|
+}
|
|
|
+
|
|
|
/* Figure out the start address of kernel map from /proc/kallsyms */
|
|
|
static u64 machine__get_kernel_start_addr(struct machine *machine)
|
|
|
{
|
|
|
- const char *filename;
|
|
|
- char path[PATH_MAX];
|
|
|
+ char filename[PATH_MAX];
|
|
|
struct process_args args;
|
|
|
|
|
|
- if (machine__is_default_guest(machine))
|
|
|
- filename = (char *)symbol_conf.default_guest_kallsyms;
|
|
|
- else {
|
|
|
- sprintf(path, "%s/proc/kallsyms", machine->root_dir);
|
|
|
- filename = path;
|
|
|
- }
|
|
|
+ machine__get_kallsyms_filename(machine, filename, PATH_MAX);
|
|
|
|
|
|
if (symbol__restricted_filename(filename, "/proc/kallsyms"))
|
|
|
return 0;
|