diff options
Diffstat (limited to 'tools/perf/arch/x86/util/event.c')
| -rw-r--r-- | tools/perf/arch/x86/util/event.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/tools/perf/arch/x86/util/event.c b/tools/perf/arch/x86/util/event.c index e4288d09f3a0..5741ffe47312 100644 --- a/tools/perf/arch/x86/util/event.c +++ b/tools/perf/arch/x86/util/event.c @@ -19,7 +19,7 @@ int perf_event__synthesize_extra_kmaps(struct perf_tool *tool,  				       struct machine *machine)  {  	int rc = 0; -	struct map *pos; +	struct map_rb_node *pos;  	struct maps *kmaps = machine__kernel_maps(machine);  	union perf_event *event = zalloc(sizeof(event->mmap) +  					 machine->id_hdr_size); @@ -33,11 +33,12 @@ int perf_event__synthesize_extra_kmaps(struct perf_tool *tool,  	maps__for_each_entry(kmaps, pos) {  		struct kmap *kmap;  		size_t size; +		struct map *map = pos->map; -		if (!__map__is_extra_kernel_map(pos)) +		if (!__map__is_extra_kernel_map(map))  			continue; -		kmap = map__kmap(pos); +		kmap = map__kmap(map);  		size = sizeof(event->mmap) - sizeof(event->mmap.filename) +  		       PERF_ALIGN(strlen(kmap->name) + 1, sizeof(u64)) + @@ -58,9 +59,9 @@ int perf_event__synthesize_extra_kmaps(struct perf_tool *tool,  		event->mmap.header.size = size; -		event->mmap.start = pos->start; -		event->mmap.len   = pos->end - pos->start; -		event->mmap.pgoff = pos->pgoff; +		event->mmap.start = map__start(map); +		event->mmap.len   = map__size(map); +		event->mmap.pgoff = map__pgoff(map);  		event->mmap.pid   = machine->pid;  		strlcpy(event->mmap.filename, kmap->name, PATH_MAX);  |