[for-next][PATCH 16/26] tracing: Accept different type for synthetic event fields

From: Steven Rostedt
Date: Tue Jan 14 2020 - 16:04:33 EST


From: Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Make the synthetic event accepts a different type field to record.
However, the size and signed flag must be same.

Link: 157867235358.17873.61732996461602171.stgit@devnote2">http://lkml.kernel.org/r/157867235358.17873.61732996461602171.stgit@devnote2

Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
---
kernel/trace/trace_events_hist.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 0454abaeb486..4f4759c6e972 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -4110,8 +4110,11 @@ static int check_synth_field(struct synth_event *event,

field = event->fields[field_pos];

- if (strcmp(field->type, hist_field->type) != 0)
- return -EINVAL;
+ if (strcmp(field->type, hist_field->type) != 0) {
+ if (field->size != hist_field->size ||
+ field->is_signed != hist_field->is_signed)
+ return -EINVAL;
+ }

return 0;
}
--
2.24.1