| From: Tom Zanussi <tom.zanussi@linux.intel.com> |
| Date: Tue, 5 Sep 2017 16:57:13 -0500 |
| Subject: [PATCH 01/40] tracing: Exclude 'generic fields' from histograms |
| |
| There are a small number of 'generic fields' (comm/COMM/cpu/CPU) that |
| are found by trace_find_event_field() but are only meant for |
| filtering. Specifically, they unlike normal fields, they have a size |
| of 0 and thus wreak havoc when used as a histogram key. |
| |
| Exclude these (return -EINVAL) when used as histogram keys. |
| |
| Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> |
| Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| --- |
| kernel/trace/trace_events_hist.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/kernel/trace/trace_events_hist.c |
| +++ b/kernel/trace/trace_events_hist.c |
| @@ -450,7 +450,7 @@ static int create_val_field(struct hist_ |
| } |
| |
| field = trace_find_event_field(file->event_call, field_name); |
| - if (!field) { |
| + if (!field || !field->size) { |
| ret = -EINVAL; |
| goto out; |
| } |
| @@ -548,7 +548,7 @@ static int create_key_field(struct hist_ |
| } |
| |
| field = trace_find_event_field(file->event_call, field_name); |
| - if (!field) { |
| + if (!field || !field->size) { |
| ret = -EINVAL; |
| goto out; |
| } |