diff options
Diffstat (limited to 'tools/perf/util/trace-event.c')
| -rw-r--r-- | tools/perf/util/trace-event.c | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/tools/perf/util/trace-event.c b/tools/perf/util/trace-event.c index 2f4996ab313d..802bb868d446 100644 --- a/tools/perf/util/trace-event.c +++ b/tools/perf/util/trace-event.c @@ -7,6 +7,7 @@  #include <sys/stat.h>  #include <fcntl.h>  #include <linux/kernel.h> +#include <linux/err.h>  #include <traceevent/event-parse.h>  #include <api/fs/tracing_path.h>  #include "trace-event.h" @@ -66,6 +67,9 @@ void trace_event__cleanup(struct trace_event *t)  	pevent_free(t->pevent);  } +/* + * Returns pointer with encoded error via <linux/err.h> interface. + */  static struct event_format*  tp_format(const char *sys, const char *name)  { @@ -74,12 +78,14 @@ tp_format(const char *sys, const char *name)  	char path[PATH_MAX];  	size_t size;  	char *data; +	int err;  	scnprintf(path, PATH_MAX, "%s/%s/%s/format",  		  tracing_events_path, sys, name); -	if (filename__read_str(path, &data, &size)) -		return NULL; +	err = filename__read_str(path, &data, &size); +	if (err) +		return ERR_PTR(err);  	pevent_parse_format(pevent, &event, data, size, sys); @@ -87,11 +93,14 @@ tp_format(const char *sys, const char *name)  	return event;  } +/* + * Returns pointer with encoded error via <linux/err.h> interface. + */  struct event_format*  trace_event__tp_format(const char *sys, const char *name)  {  	if (!tevent_initialized && trace_event__init2()) -		return NULL; +		return ERR_PTR(-ENOMEM);  	return tp_format(sys, name);  } | 
