Commit 41b98360 authored by Taeung Song's avatar Taeung Song Committed by Arnaldo Carvalho de Melo

perf kvm: Fill in the missing session freeing after an error occurs

When an error occurs an error value is just returned without freeing the
session. So allocating and freeing session have to be matched as a pair
even if an error occurs.
Signed-off-by: default avatarTaeung Song <treeze.taeung@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1435677525-28055-1-git-send-email-treeze.taeung@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 07a716ff
...@@ -1061,8 +1061,10 @@ static int read_events(struct perf_kvm_stat *kvm) ...@@ -1061,8 +1061,10 @@ static int read_events(struct perf_kvm_stat *kvm)
symbol__init(&kvm->session->header.env); symbol__init(&kvm->session->header.env);
if (!perf_session__has_traces(kvm->session, "kvm record")) if (!perf_session__has_traces(kvm->session, "kvm record")) {
return -EINVAL; ret = -EINVAL;
goto out_delete;
}
/* /*
* Do not use 'isa' recorded in kvm_exit tracepoint since it is not * Do not use 'isa' recorded in kvm_exit tracepoint since it is not
...@@ -1070,9 +1072,13 @@ static int read_events(struct perf_kvm_stat *kvm) ...@@ -1070,9 +1072,13 @@ static int read_events(struct perf_kvm_stat *kvm)
*/ */
ret = cpu_isa_config(kvm); ret = cpu_isa_config(kvm);
if (ret < 0) if (ret < 0)
return ret; goto out_delete;
return perf_session__process_events(kvm->session); ret = perf_session__process_events(kvm->session);
out_delete:
perf_session__delete(kvm->session);
return ret;
} }
static int parse_target_str(struct perf_kvm_stat *kvm) static int parse_target_str(struct perf_kvm_stat *kvm)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment