aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-trace.c')
-rw-r--r--tools/perf/builtin-trace.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 215653274102..93b80f12f35e 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -38,6 +38,7 @@
38#include <stdlib.h> 38#include <stdlib.h>
39#include <sys/mman.h> 39#include <sys/mman.h>
40#include <linux/futex.h> 40#include <linux/futex.h>
41#include <linux/err.h>
41 42
42/* For older distros: */ 43/* For older distros: */
43#ifndef MAP_STACK 44#ifndef MAP_STACK
@@ -245,13 +246,14 @@ static struct perf_evsel *perf_evsel__syscall_newtp(const char *direction, void
245 struct perf_evsel *evsel = perf_evsel__newtp("raw_syscalls", direction); 246 struct perf_evsel *evsel = perf_evsel__newtp("raw_syscalls", direction);
246 247
247 /* older kernel (e.g., RHEL6) use syscalls:{enter,exit} */ 248 /* older kernel (e.g., RHEL6) use syscalls:{enter,exit} */
248 if (evsel == NULL) 249 if (IS_ERR(evsel))
249 evsel = perf_evsel__newtp("syscalls", direction); 250 evsel = perf_evsel__newtp("syscalls", direction);
250 251
251 if (evsel) { 252 if (IS_ERR(evsel))
252 if (perf_evsel__init_syscall_tp(evsel, handler)) 253 return NULL;
253 goto out_delete; 254
254 } 255 if (perf_evsel__init_syscall_tp(evsel, handler))
256 goto out_delete;
255 257
256 return evsel; 258 return evsel;
257 259
@@ -1705,12 +1707,12 @@ static int trace__read_syscall_info(struct trace *trace, int id)
1705 snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->name); 1707 snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->name);
1706 sc->tp_format = trace_event__tp_format("syscalls", tp_name); 1708 sc->tp_format = trace_event__tp_format("syscalls", tp_name);
1707 1709
1708 if (sc->tp_format == NULL && sc->fmt && sc->fmt->alias) { 1710 if (IS_ERR(sc->tp_format) && sc->fmt && sc->fmt->alias) {
1709 snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->fmt->alias); 1711 snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->fmt->alias);
1710 sc->tp_format = trace_event__tp_format("syscalls", tp_name); 1712 sc->tp_format = trace_event__tp_format("syscalls", tp_name);
1711 } 1713 }
1712 1714
1713 if (sc->tp_format == NULL) 1715 if (IS_ERR(sc->tp_format))
1714 return -1; 1716 return -1;
1715 1717
1716 sc->args = sc->tp_format->format.fields; 1718 sc->args = sc->tp_format->format.fields;
@@ -2390,7 +2392,8 @@ static size_t trace__fprintf_thread_summary(struct trace *trace, FILE *fp);
2390static bool perf_evlist__add_vfs_getname(struct perf_evlist *evlist) 2392static bool perf_evlist__add_vfs_getname(struct perf_evlist *evlist)
2391{ 2393{
2392 struct perf_evsel *evsel = perf_evsel__newtp("probe", "vfs_getname"); 2394 struct perf_evsel *evsel = perf_evsel__newtp("probe", "vfs_getname");
2393 if (evsel == NULL) 2395
2396 if (IS_ERR(evsel))
2394 return false; 2397 return false;
2395 2398
2396 if (perf_evsel__field(evsel, "pathname") == NULL) { 2399 if (perf_evsel__field(evsel, "pathname") == NULL) {