perf unwind: Use find_map function in access_dso_mem
authorJiri Olsa <[email protected]>
Thu, 7 Jan 2016 09:14:00 +0000 (10:14 +0100)
committerArnaldo Carvalho de Melo <[email protected]>
Fri, 8 Jan 2016 17:16:12 +0000 (14:16 -0300)
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 <[email protected]>
Tested-by: Noel Grandin <[email protected]>
Cc: Adrian Hunter <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
tools/perf/util/unwind-libunwind.c

index 3c258a0e4092dbb4d78c6cee0a3225b0f127cc1d..f37859c0431726febf29fedd2c2a52dbc7cd93df 100644 (file)
@@ -416,20 +416,19 @@ get_proc_name(unw_addr_space_t __maybe_unused as,
 static int access_dso_mem(struct unwind_info *ui, unw_word_t addr,
                          unw_word_t *data)
 {
-       struct addr_location al;
+       struct map *map;
        ssize_t size;
 
-       thread__find_addr_map(ui->thread, PERF_RECORD_MISC_USER,
-                             MAP__FUNCTION, addr, &al);
-       if (!al.map) {
+       map = find_map(addr, ui);
+       if (!map) {
                pr_debug("unwind: no map for %lx\n", (unsigned long)addr);
                return -1;
        }
 
-       if (!al.map->dso)
+       if (!map->dso)
                return -1;
 
-       size = dso__data_read_addr(al.map->dso, al.map, ui->machine,
+       size = dso__data_read_addr(map->dso, map, ui->machine,
                                   addr, (u8 *) data, sizeof(*data));
 
        return !(size == sizeof(*data));