perf evsel: Always preserve errno while cleaning up perf_event_open failures
authorAndi Kleen <ak@linux.intel.com>
Sun, 20 Oct 2019 17:51:54 +0000 (10:51 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 6 Nov 2019 18:43:05 +0000 (15:43 -0300)
commit796c01a4bfb4b35ec6d1bd1cd5d520515d078b51
tree57081bb36da7d51bac16f9e8287db0535b6d26b9
parent9d604aad4bb022e848dec80d6fe5f73fe87061a2
perf evsel: Always preserve errno while cleaning up perf_event_open failures

In some cases when perf_event_open fails, it may do some closes to clean
up. In special cases these closes can fail too, which overwrites the
errno of the perf_event_open, which is then incorrectly reported.

Save/restore errno around closes.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lore.kernel.org/lkml/20191020175202.32456-2-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/evsel.c