commit | 9ee67421fe3b67a0796d6ea620fd5fcb037d3f89 | [log] [tgz] |
---|---|---|
author | Arnaldo Carvalho de Melo <[email protected]> | Mon Aug 03 16:27:40 2015 -0300 |
committer | Arnaldo Carvalho de Melo <[email protected]> | Tue Aug 04 12:28:10 2015 -0300 |
tree | 379ff0e5acad160eecf49c5ac5461ae06dca46a9 | |
parent | 75f80859b130a1cc84e59e71295ce2dd51fe1c81 [diff] [blame] |
perf script: No tracepoints? Don't call libtraceevent. The libtraceevent handler (session->tevent) is only initialized when there are tracepoints in a perf.data event list, so do not call pevent_set_function_resolve() in those cases, fixing a segfault. Reported-by: Jiri Olsa <[email protected]> Tested-by: Jiri Olsa <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: David Ahern <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Stephane Eranian <[email protected]> Link: http://lkml.kernel.org/n/[email protected] Report-link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index bd31380..7912feb 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c
@@ -1861,7 +1861,8 @@ else symbol_conf.use_callchain = false; - if (pevent_set_function_resolver(session->tevent.pevent, + if (session->tevent.pevent && + pevent_set_function_resolver(session->tevent.pevent, machine__resolve_kernel_addr, &session->machines.host) < 0) { pr_err("%s: failed to set libtraceevent function resolver\n", __func__);