Any event can have RAW data attribute set. The intent of the function is
to determine if the session has tracepoints, so check for the type of each
event explicitly.

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

diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 0eada12..83bdcfa 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -1401,12 +1401,15 @@ int perf_session__process_events(struct perf_session 
*self,
 
 bool perf_session__has_traces(struct perf_session *session, const char *msg)
 {
-       if (!(perf_evlist__sample_type(session->evlist) & PERF_SAMPLE_RAW)) {
-               pr_err("No trace sample to read. Did you call 'perf %s'?\n", 
msg);
-               return false;
+       struct perf_evsel *evsel;
+
+       list_for_each_entry(evsel, &session->evlist->entries, node) {
+               if (evsel->attr.type == PERF_TYPE_TRACEPOINT)
+                       return true;
        }
 
-       return true;
+       pr_err("No trace sample to read. Did you call 'perf %s'?\n", msg);
+       return false;
 }
 
 int maps__set_kallsyms_ref_reloc_sym(struct map **maps,
-- 
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