4.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tom Zanussi <tom.zanu...@linux.intel.com>


[ Upstream commit a15f7fc20389a8827d5859907568b201234d4b79 ]

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.

Link: 
http://lkml.kernel.org/r/956154cbc3e8a4f0633d619b886c97f0f0edf7b4.1506105045.git.tom.zanu...@linux.intel.com

Signed-off-by: Tom Zanussi <tom.zanu...@linux.intel.com>
Signed-off-by: Steven Rostedt (VMware) <rost...@goodmis.org>
Signed-off-by: Sasha Levin <alexander.le...@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 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;
                }


Reply via email to