From: Jiri Olsa Date: Thu, 3 Dec 2015 08:34:15 +0000 (+0100) Subject: perf test: Fix cpus and thread maps reference in error path X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=7320b1b3d9e6af30adcbead64568be3c40b50e59;p=openwrt%2Fstaging%2Fblogic.git perf test: Fix cpus and thread maps reference in error path In error path to try user space event, both cpus and threads map now owned by evlist and freed by perf_evlist__set_maps call. Getting reference to keep them alive. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1449131658-1841-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c index 26182ffcea75..313a48c6b2bc 100644 --- a/tools/perf/tests/code-reading.c +++ b/tools/perf/tests/code-reading.c @@ -547,6 +547,13 @@ static int do_test_code_reading(bool try_kcore) if (ret < 0) { if (!excl_kernel) { excl_kernel = true; + /* + * Both cpus and threads are now owned by evlist + * and will be freed by following perf_evlist__set_maps + * call. Getting refference to keep them alive. + */ + cpu_map__get(cpus); + thread_map__get(threads); perf_evlist__set_maps(evlist, NULL, NULL); perf_evlist__delete(evlist); evlist = NULL;