diff options
Diffstat (limited to 'tools/perf/util/python.c')
| -rw-r--r-- | tools/perf/util/python.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index b5c7d818001..69436b3200a 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -675,6 +675,7 @@ static PyObject *pyrf_evlist__read_on_cpu(struct pyrf_evlist *pevlist,  	union perf_event *event;  	int sample_id_all = 1, cpu;  	static char *kwlist[] = {"sample_id_all", NULL, NULL}; +	int err;  	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i|i", kwlist,  					 &cpu, &sample_id_all)) @@ -690,11 +691,17 @@ static PyObject *pyrf_evlist__read_on_cpu(struct pyrf_evlist *pevlist,  			return PyErr_NoMemory();  		first = list_entry(evlist->entries.next, struct perf_evsel, node); -		perf_event__parse_sample(event, first->attr.sample_type, sample_id_all, -					 &pevent->sample); +		err = perf_event__parse_sample(event, first->attr.sample_type, +					       perf_sample_size(first->attr.sample_type), +					       sample_id_all, &pevent->sample); +		if (err) { +			pr_err("Can't parse sample, err = %d\n", err); +			goto end; +		} +  		return pyevent;  	} - +end:  	Py_INCREF(Py_None);  	return Py_None;  } | 
