Destroy argument is not necessary. If session is not returned to caller,
then clean it up.

Signed-off-by: David Ahern <dsah...@gmail.com>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Jiri Olsa <jo...@redhat.com>
Cc: Namhyung Kim <namhy...@kernel.org>
Cc: Frederic Weisbecker <fweis...@gmail.com>
Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Stephane Eranian <eran...@google.com>
---
 tools/perf/builtin-sched.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index 948183a..34ce57d 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -1445,7 +1445,7 @@ static int perf_sched__process_tracepoint_sample(struct 
perf_tool *tool __maybe_
        return err;
 }
 
-static int perf_sched__read_events(struct perf_sched *sched, bool destroy,
+static int perf_sched__read_events(struct perf_sched *sched,
                                   struct perf_session **psession)
 {
        const struct perf_evsel_str_handler handlers[] = {
@@ -1480,11 +1480,10 @@ static int perf_sched__read_events(struct perf_sched 
*sched, bool destroy,
                sched->nr_lost_chunks = 
session->stats.nr_events[PERF_RECORD_LOST];
        }
 
-       if (destroy)
-               perf_session__delete(session);
-
        if (psession)
                *psession = session;
+       else
+               perf_session__delete(session);
 
        return 0;
 
@@ -1529,8 +1528,11 @@ static int perf_sched__lat(struct perf_sched *sched)
        struct perf_session *session;
 
        setup_pager();
-       if (perf_sched__read_events(sched, false, &session))
+
+       /* save session -- references to threads are held in work_list */
+       if (perf_sched__read_events(sched, &session))
                return -1;
+
        perf_sched__sort_lat(sched);
 
        printf("\n 
---------------------------------------------------------------------------------------------------------------\n");
@@ -1565,7 +1567,7 @@ static int perf_sched__map(struct perf_sched *sched)
        sched->max_cpu = sysconf(_SC_NPROCESSORS_CONF);
 
        setup_pager();
-       if (perf_sched__read_events(sched, true, NULL))
+       if (perf_sched__read_events(sched, NULL))
                return -1;
        print_bad_events(sched);
        return 0;
@@ -1580,7 +1582,7 @@ static int perf_sched__replay(struct perf_sched *sched)
 
        test_calibrations(sched);
 
-       if (perf_sched__read_events(sched, true, NULL))
+       if (perf_sched__read_events(sched, NULL))
                return -1;
 
        printf("nr_run_events:        %ld\n", sched->nr_run_events);
-- 
1.7.10.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
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