diff options
Diffstat (limited to 'tools/perf/util/parse-events.c')
| -rw-r--r-- | tools/perf/util/parse-events.c | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index ba74fdf74af9..acf20ce98ce9 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -1824,6 +1824,11 @@ out:  	return ret;  } +__weak struct evsel *arch_evlist__leader(struct list_head *list) +{ +	return list_first_entry(list, struct evsel, core.node); +} +  void parse_events__set_leader(char *name, struct list_head *list,  			      struct parse_events_state *parse_state)  { @@ -1837,9 +1842,10 @@ void parse_events__set_leader(char *name, struct list_head *list,  	if (parse_events__set_leader_for_uncore_aliase(name, list, parse_state))  		return; -	__perf_evlist__set_leader(list); -	leader = list_entry(list->next, struct evsel, core.node); +	leader = arch_evlist__leader(list); +	__perf_evlist__set_leader(list, &leader->core);  	leader->group_name = name ? strdup(name) : NULL; +	list_move(&leader->core.node, list);  }  /* list_event is assumed to point to malloc'ed memory */ |