32 is too small for this value, and anyway it makes more sense to use
MAX_FILTER_STR_VAL, as this is also the value used for variable-length
__strings.

Tested-by: Axel Rasmussen <axelrasmus...@google.com>
Signed-off-by: Tom Zanussi <zanu...@kernel.org>
---
 kernel/trace/trace_events_hist.c | 2 ++
 kernel/trace/trace_synth.h       | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 1b2ef6490229..3b22e2122d1a 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -1398,6 +1398,8 @@ static int hist_trigger_elt_data_alloc(struct 
tracing_map_elt *elt)
 
        n_str = hist_data->n_field_var_str + hist_data->n_save_var_str;
 
+       BUILD_BUG_ON(STR_VAR_LEN_MAX & (sizeof(u64) - 1));
+
        size = STR_VAR_LEN_MAX;
 
        for (i = 0; i < n_str; i++) {
diff --git a/kernel/trace/trace_synth.h b/kernel/trace/trace_synth.h
index ac35c45207c4..5166705d1556 100644
--- a/kernel/trace/trace_synth.h
+++ b/kernel/trace/trace_synth.h
@@ -7,7 +7,7 @@
 #define SYNTH_SYSTEM           "synthetic"
 #define SYNTH_FIELDS_MAX       32
 
-#define STR_VAR_LEN_MAX                32 /* must be multiple of sizeof(u64) */
+#define STR_VAR_LEN_MAX                MAX_FILTER_STR_VAL /* must be multiple 
of sizeof(u64) */
 
 struct synth_field {
        char *type;
-- 
2.17.1

Reply via email to