perf evlist: Add success path to evlist__create_syswide_maps

Over various refactorings evlist__create_syswide_maps has been made to
only ever return with -ENOMEM. Fix this so that when
perf_evlist__set_maps is successfully called, 0 is returned.

Reviewed-by: Howard Chu <howardchu95@gmail.com>
Signed-off-by: Ian Rogers <irogers@google.com>
Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Link: https://lore.kernel.org/r/20250228222308.626803-3-irogers@google.com
Fixes: 8c0498b689 ("perf evlist: Fix create_syswide_maps() not propagating maps")
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
Ian Rogers
2025-02-28 14:22:59 -08:00
committed by Namhyung Kim
parent bda840191d
commit fe0ce8a9d8

View File

@@ -1373,19 +1373,18 @@ static int evlist__create_syswide_maps(struct evlist *evlist)
*/
cpus = perf_cpu_map__new_online_cpus();
if (!cpus)
goto out;
return -ENOMEM;
threads = perf_thread_map__new_dummy();
if (!threads)
goto out_put;
if (!threads) {
perf_cpu_map__put(cpus);
return -ENOMEM;
}
perf_evlist__set_maps(&evlist->core, cpus, threads);
perf_thread_map__put(threads);
out_put:
perf_cpu_map__put(cpus);
out:
return -ENOMEM;
return 0;
}
int evlist__open(struct evlist *evlist)