A symbol address is relative in a map/dso, to setup modules addresses it should be converted to absolute address. Note that it only used for kernel mappings which uses identity map but theorically it should unmap the address IMHO.
Cc: Adrian Hunter <[email protected]> Cc: Wang Nan <[email protected]> Signed-off-by: Namhyung Kim <[email protected]> --- tools/perf/util/map.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 2179b2deb730..4867265b800a 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -265,7 +265,7 @@ void map__fixup_start(struct map *map) struct rb_node *nd = rb_first(symbols); if (nd != NULL) { struct symbol *sym = rb_entry(nd, struct symbol, rb_node); - map->start = sym->start; + map->start = map->unmap_ip(map, sym->start); } } @@ -275,7 +275,7 @@ void map__fixup_end(struct map *map) struct rb_node *nd = rb_last(symbols); if (nd != NULL) { struct symbol *sym = rb_entry(nd, struct symbol, rb_node); - map->end = sym->end; + map->end = map->unmap_ip(map, sym->end); } } -- 2.13.1

