diff options
| -rw-r--r-- | tools/perf/util/machine.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index ded74590b92f..290c2e6d4001 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c | |||
| @@ -496,19 +496,22 @@ static int symbol__in_kernel(void *arg, const char *name, | |||
| 496 | return 1; | 496 | return 1; |
| 497 | } | 497 | } |
| 498 | 498 | ||
| 499 | static void machine__get_kallsyms_filename(struct machine *machine, char *buf, | ||
| 500 | size_t bufsz) | ||
| 501 | { | ||
| 502 | if (machine__is_default_guest(machine)) | ||
| 503 | scnprintf(buf, bufsz, "%s", symbol_conf.default_guest_kallsyms); | ||
| 504 | else | ||
| 505 | scnprintf(buf, bufsz, "%s/proc/kallsyms", machine->root_dir); | ||
| 506 | } | ||
| 507 | |||
| 499 | /* Figure out the start address of kernel map from /proc/kallsyms */ | 508 | /* Figure out the start address of kernel map from /proc/kallsyms */ |
| 500 | static u64 machine__get_kernel_start_addr(struct machine *machine) | 509 | static u64 machine__get_kernel_start_addr(struct machine *machine) |
| 501 | { | 510 | { |
| 502 | const char *filename; | 511 | char filename[PATH_MAX]; |
| 503 | char path[PATH_MAX]; | ||
| 504 | struct process_args args; | 512 | struct process_args args; |
| 505 | 513 | ||
| 506 | if (machine__is_default_guest(machine)) | 514 | machine__get_kallsyms_filename(machine, filename, PATH_MAX); |
| 507 | filename = (char *)symbol_conf.default_guest_kallsyms; | ||
| 508 | else { | ||
| 509 | sprintf(path, "%s/proc/kallsyms", machine->root_dir); | ||
| 510 | filename = path; | ||
| 511 | } | ||
| 512 | 515 | ||
| 513 | if (symbol__restricted_filename(filename, "/proc/kallsyms")) | 516 | if (symbol__restricted_filename(filename, "/proc/kallsyms")) |
| 514 | return 0; | 517 | return 0; |
