Skip to content

Commit

Permalink
perf kvm: Fill in the missing session freeing after an error occurs
Browse files Browse the repository at this point in the history
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: Taeung 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Taeung Song authored and Arnaldo Carvalho de Melo committed Jul 1, 2015
1 parent 07a716f commit 41b9836
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions tools/perf/builtin-kvm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1061,18 +1061,24 @@ static int read_events(struct perf_kvm_stat *kvm)

symbol__init(&kvm->session->header.env);

if (!perf_session__has_traces(kvm->session, "kvm record"))
return -EINVAL;
if (!perf_session__has_traces(kvm->session, "kvm record")) {
ret = -EINVAL;
goto out_delete;
}

/*
* Do not use 'isa' recorded in kvm_exit tracepoint since it is not
* traced in the old kernel.
*/
ret = cpu_isa_config(kvm);
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)
Expand Down

0 comments on commit 41b9836

Please sign in to comment.