Skip to content

Commit fe7a98b

Browse files
John Garryacmel
John Garry
authored andcommitted
perf metricgroup: Return error code from metricgroup__add_metric_sys_event_iter()
The error code is not set at all in the sys event iter function. This may lead to an uninitialized value of "ret" in metricgroup__add_metric() when no CPU metric is added. Fix by properly setting the error code. It is not necessary to init "ret" to 0 in metricgroup__add_metric(), as if we have no CPU or sys event metric matching, then "has_match" should be 0 and "ret" is set to -EINVAL. However gcc cannot detect that it may not have been set after the map_for_each_metric() loop for CPU metrics, which is strange. Fixes: be335ec ("perf metricgroup: Support adding metrics for system PMUs") Signed-off-by: John Garry <[email protected]> Acked-by: Ian Rogers <[email protected]> Cc: Alexander Shishkin <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Kajol Jain <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Link: http://lore.kernel.org/lkml/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent fc96ec4 commit fe7a98b

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

tools/perf/util/metricgroup.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,16 +1073,18 @@ static int metricgroup__add_metric_sys_event_iter(struct pmu_event *pe,
10731073

10741074
ret = add_metric(d->metric_list, pe, d->metric_no_group, &m, NULL, d->ids);
10751075
if (ret)
1076-
return ret;
1076+
goto out;
10771077

10781078
ret = resolve_metric(d->metric_no_group,
10791079
d->metric_list, NULL, d->ids);
10801080
if (ret)
1081-
return ret;
1081+
goto out;
10821082

10831083
*(d->has_match) = true;
10841084

1085-
return *d->ret;
1085+
out:
1086+
*(d->ret) = ret;
1087+
return ret;
10861088
}
10871089

10881090
static int metricgroup__add_metric(const char *metric, bool metric_no_group,

0 commit comments

Comments
 (0)