aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@kernel.org>2016-01-07 04:14:00 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-01-08 12:16:12 -0500
commitf22ed827a8d5ff5a85e7c8e865baaaaf71a8d0cc (patch)
treed5f7e49174f37666aa8c6b0f9e623694e615a457
parentd2190a8091124f832c8862ace3a3d7d70a2506a5 (diff)
perf unwind: Use find_map function in access_dso_mem
The find_map helper is already there, so let's use it. Also we're going to introduce wider search in following patch, so it'll be easier to make this change on single place. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Tested-by: Noel Grandin <noelgrandin@gmail.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1452158050-28061-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/util/unwind-libunwind.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/tools/perf/util/unwind-libunwind.c b/tools/perf/util/unwind-libunwind.c
index 3c258a0e4092..f37859c04317 100644
--- a/tools/perf/util/unwind-libunwind.c
+++ b/tools/perf/util/unwind-libunwind.c
@@ -416,20 +416,19 @@ get_proc_name(unw_addr_space_t __maybe_unused as,
416static int access_dso_mem(struct unwind_info *ui, unw_word_t addr, 416static int access_dso_mem(struct unwind_info *ui, unw_word_t addr,
417 unw_word_t *data) 417 unw_word_t *data)
418{ 418{
419 struct addr_location al; 419 struct map *map;
420 ssize_t size; 420 ssize_t size;
421 421
422 thread__find_addr_map(ui->thread, PERF_RECORD_MISC_USER, 422 map = find_map(addr, ui);
423 MAP__FUNCTION, addr, &al); 423 if (!map) {
424 if (!al.map) {
425 pr_debug("unwind: no map for %lx\n", (unsigned long)addr); 424 pr_debug("unwind: no map for %lx\n", (unsigned long)addr);
426 return -1; 425 return -1;
427 } 426 }
428 427
429 if (!al.map->dso) 428 if (!map->dso)
430 return -1; 429 return -1;
431 430
432 size = dso__data_read_addr(al.map->dso, al.map, ui->machine, 431 size = dso__data_read_addr(map->dso, map, ui->machine,
433 addr, (u8 *) data, sizeof(*data)); 432 addr, (u8 *) data, sizeof(*data));
434 433
435 return !(size == sizeof(*data)); 434 return !(size == sizeof(*data));