perf map_groups: Pass the object to map_groups__find_ams()
A message that is not in the archive (sent off-list or not yet received): [email protected]
The following commit has been merged into the perf/core branch of tip:
Commit-ID: 9d355b381b35be1ac4e77600d6b9b27c674c5d5f Gitweb: https://git.kernel.org/tip/9d355b381b35be1ac4e77600d6b9b27c674c5d5f Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Mon, 04 Nov 2019 10:14:05 -03:00 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitterDate: Tue, 12 Nov 2019 08:20:53 -03:00
perf map_groups: Pass the object to map_groups__find_ams()
We were just passing a map to look for and reuse its map->groups member, but the idea is that this is going away, as a map can be in multiple rb_trees when being reused via a map_node, so do as all the other map_groups methods and pass as its first arg the object being operated on.
Cc Adrian Hunter <[email protected]>
Cc Andi Kleen <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/arch/s390/annotate/instructions.c | 2 +- tools/perf/util/annotate.c | 6 +++--- tools/perf/util/map.c | 6 +++--- tools/perf/util/map_groups.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-)
tools/perf/arch/s390/annotate/instructions.c +1 -1
@@ -38,7 +38,7 @@ static int s390_call__parse(struct arch *arch, struct ins_operands *ops,return -1 ; target.addr =map__objdump_2mem (map, ops->target.addr); -if (map_groups__find_ams (&target) ==0 && +if (map_groups__find_ams (map->groups, &target) ==0 &&map__rip_2objdump (target.map, map->map_ip (target.map, target.addr)) == ops->target.addr) ops->target.sym = target.sym;
tools/perf/util/annotate.c +3 -3
@@ -271,7 +271,7 @@ static int call__parse(struct arch *arch, struct ins_operands *ops, struct map_s find_target: target.addr =map__objdump_2mem (map, ops->target.addr); -if (map_groups__find_ams (&target) ==0 && +if (map_groups__find_ams (map->groups, &target) ==0 &&map__rip_2objdump (target.map, map->map_ip (target.map, target.addr)) == ops->target.addr) ops->target.sym = target.sym;
@@ -391,7 +391,7 @@ static int jump__parse(struct arch *arch, struct ins_operands *ops, struct map_s* Actual navigation will come next, with further understanding of how * the symbol searching and disassembly should be done. */ -if (map_groups__find_ams (&target) ==0 && +if (map_groups__find_ams (map->groups, &target) ==0 &&map__rip_2objdump (target.map, map->map_ip (target.map, target.addr)) == ops->target.addr) ops->target.sym = target.sym;
@@ -1544,7 +1544,7 @@ static int symbol__parse_objdump_line(struct symbol *sym, .addr = dl->ops.target.addr, }; -if (!map_groups__find_ams (&target) && +if (!map_groups__find_ams (map->groups, &target) && target.sym->start == target.al_addr) dl->ops.target.sym = target.sym; }
tools/perf/util/map.c +3 -3
@@ -703,12 +703,12 @@ struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,return maps__find_symbol_by_name (&mg->maps, name, mapp); } -int map_groups__find_ams (struct addr_map_symbol *ams) +int map_groups__find_ams (struct map_groups *mg,struct addr_map_symbol *ams) {if (ams->addr < ams->map->start || ams->addr >= ams->map->end) { -if (ams->map->groups ==NULL ) +if (mg ==NULL )return -1 ; - ams->map =map_groups__find (ams->map->groups, ams->addr); + ams->map =map_groups__find (mg, ams->addr);if (ams->map ==NULL )return -1 ; }
tools/perf/util/map_groups.h +1 -1
@@ -100,7 +100,7 @@ struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg, const charstruct addr_map_symbol ; -int map_groups__find_ams (struct addr_map_symbol *ams); +int map_groups__find_ams (struct map_groups *mg,struct addr_map_symbol *ams);int map_groups__fixup_overlappings (struct map_groups *mg,struct map *map,FILE *fp);