Commit-ID:  1df9fade87ea4831c024de9806f88427f9f33e62
Gitweb:     http://git.kernel.org/tip/1df9fade87ea4831c024de9806f88427f9f33e62
Author:     Taeung Song <[email protected]>
AuthorDate: Wed, 1 Jul 2015 21:08:19 +0900
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Wed, 1 Jul 2015 17:53:49 -0300

perf mem: 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: Taeung Song <[email protected]>
Acked-by: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
Link: 
http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/builtin-mem.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/tools/perf/builtin-mem.c b/tools/perf/builtin-mem.c
index da2ec06..80170aa 100644
--- a/tools/perf/builtin-mem.c
+++ b/tools/perf/builtin-mem.c
@@ -124,7 +124,6 @@ static int report_raw_events(struct perf_mem *mem)
                .mode = PERF_DATA_MODE_READ,
                .force = mem->force,
        };
-       int err = -EINVAL;
        int ret;
        struct perf_session *session = perf_session__new(&file, false,
                                                         &mem->tool);
@@ -135,24 +134,21 @@ static int report_raw_events(struct perf_mem *mem)
        if (mem->cpu_list) {
                ret = perf_session__cpu_bitmap(session, mem->cpu_list,
                                               mem->cpu_bitmap);
-               if (ret)
+               if (ret < 0)
                        goto out_delete;
        }
 
-       if (symbol__init(&session->header.env) < 0)
-               return -1;
+       ret = symbol__init(&session->header.env);
+       if (ret < 0)
+               goto out_delete;
 
        printf("# PID, TID, IP, ADDR, LOCAL WEIGHT, DSRC, SYMBOL\n");
 
-       err = perf_session__process_events(session);
-       if (err)
-               return err;
-
-       return 0;
+       ret = perf_session__process_events(session);
 
 out_delete:
        perf_session__delete(session);
-       return err;
+       return ret;
 }
 
 static int report_events(int argc, const char **argv, struct perf_mem *mem)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to