summaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_events_hist.c
diff options
context:
space:
mode:
authorTom Zanussi2018-01-16 03:51:50 +0100
committerSteven Rostedt (VMware)2018-03-10 22:05:55 +0100
commit1a361dfcf261d68f081a12133aa8d0d6d6cca34f (patch)
tree776d82b3e5b9a1595a7fce3536cdf621f50546c0 /kernel/trace/trace_events_hist.c
parenttracing: Add variable support to hist triggers (diff)
downloadkernel-qcow2-linux-1a361dfcf261d68f081a12133aa8d0d6d6cca34f.tar.gz
kernel-qcow2-linux-1a361dfcf261d68f081a12133aa8d0d6d6cca34f.tar.xz
kernel-qcow2-linux-1a361dfcf261d68f081a12133aa8d0d6d6cca34f.zip
tracing: Account for variables in named trigger compatibility
Named triggers must also have the same set of variables in order to be considered compatible - update the trigger match test to account for that. The reason for this requirement is that named triggers with variables are meant to allow one or more events to set the same variable. Link: http://lkml.kernel.org/r/a17eae6328a99917f9d5c66129c9fcd355279ee9.1516069914.git.tom.zanussi@linux.intel.com Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_events_hist.c')
-rw-r--r--kernel/trace/trace_events_hist.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 8f43f24bf49c..ba326260c034 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -1610,7 +1610,7 @@ static int event_hist_trigger_print(struct seq_file *m,
sort_key = &hist_data->sort_keys[i];
idx = sort_key->field_idx;
- if (WARN_ON(idx >= TRACING_MAP_FIELDS_MAX))
+ if (WARN_ON(idx >= HIST_FIELDS_MAX))
return -EINVAL;
if (i > 0)
@@ -1798,6 +1798,11 @@ static bool hist_trigger_match(struct event_trigger_data *data,
return false;
if (key_field->is_signed != key_field_test->is_signed)
return false;
+ if (!!key_field->var.name != !!key_field_test->var.name)
+ return false;
+ if (key_field->var.name &&
+ strcmp(key_field->var.name, key_field_test->var.name) != 0)
+ return false;
}
for (i = 0; i < hist_data->n_sort_keys; i++) {