diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/perf/builtin-record.c | 17 | ||||
| -rw-r--r-- | tools/perf/util/symbol.c | 4 |
2 files changed, 12 insertions, 9 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 93bd2ff001f..e2c2de201ee 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
| @@ -697,17 +697,18 @@ static int __cmd_record(int argc, const char **argv) | |||
| 697 | if (err < 0) | 697 | if (err < 0) |
| 698 | err = event__synthesize_kernel_mmap(process_synthesized_event, | 698 | err = event__synthesize_kernel_mmap(process_synthesized_event, |
| 699 | session, machine, "_stext"); | 699 | session, machine, "_stext"); |
| 700 | if (err < 0) { | 700 | if (err < 0) |
| 701 | pr_err("Couldn't record kernel reference relocation symbol.\n"); | 701 | pr_err("Couldn't record kernel reference relocation symbol\n" |
| 702 | return err; | 702 | "Symbol resolution may be skewed if relocation was used (e.g. kexec).\n" |
| 703 | } | 703 | "Check /proc/kallsyms permission or run as root.\n"); |
| 704 | 704 | ||
| 705 | err = event__synthesize_modules(process_synthesized_event, | 705 | err = event__synthesize_modules(process_synthesized_event, |
| 706 | session, machine); | 706 | session, machine); |
| 707 | if (err < 0) { | 707 | if (err < 0) |
| 708 | pr_err("Couldn't record kernel reference relocation symbol.\n"); | 708 | pr_err("Couldn't record kernel module information.\n" |
| 709 | return err; | 709 | "Symbol resolution may be skewed if relocation was used (e.g. kexec).\n" |
| 710 | } | 710 | "Check /proc/modules permission or run as root.\n"); |
| 711 | |||
| 711 | if (perf_guest) | 712 | if (perf_guest) |
| 712 | perf_session__process_machines(session, event__synthesize_guest_os); | 713 | perf_session__process_machines(session, event__synthesize_guest_os); |
| 713 | 714 | ||
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index b39f499e575..0500895a45a 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c | |||
| @@ -295,7 +295,9 @@ static void symbols__insert_by_name(struct rb_root *self, struct symbol *sym) | |||
| 295 | { | 295 | { |
| 296 | struct rb_node **p = &self->rb_node; | 296 | struct rb_node **p = &self->rb_node; |
| 297 | struct rb_node *parent = NULL; | 297 | struct rb_node *parent = NULL; |
| 298 | struct symbol_name_rb_node *symn = ((void *)sym) - sizeof(*parent), *s; | 298 | struct symbol_name_rb_node *symn, *s; |
| 299 | |||
| 300 | symn = container_of(sym, struct symbol_name_rb_node, sym); | ||
| 299 | 301 | ||
| 300 | while (*p != NULL) { | 302 | while (*p != NULL) { |
| 301 | parent = *p; | 303 | parent = *p; |
