Hi Steve, It looks like you missed this patch when you pulled the other ones into for-next. Tom On Wed, 2020-01-29 at 12:59 -0600, Tom Zanussi wrote: > Have trace_boot_add_synth_event() use the synth_event interface. > > Also, rename synth_event_run_cmd() to synth_event_run_command() now > that trace_boot's version is gone. > > Signed-off-by: Tom Zanussi <zanussi@xxxxxxxxxx> > Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx> > --- > kernel/trace/trace_boot.c | 31 ++++++++++++---------------- > --- > kernel/trace/trace_events_hist.c | 9 ++------- > 2 files changed, 14 insertions(+), 26 deletions(-) > > diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c > index 2f616cd926b0..8f40de349db1 100644 > --- a/kernel/trace/trace_boot.c > +++ b/kernel/trace/trace_boot.c > @@ -133,38 +133,31 @@ trace_boot_add_kprobe_event(struct xbc_node > *node, const char *event) > #endif > > #ifdef CONFIG_HIST_TRIGGERS > -extern int synth_event_run_command(const char *command); > - > static int __init > trace_boot_add_synth_event(struct xbc_node *node, const char *event) > { > + struct dynevent_cmd cmd; > struct xbc_node *anode; > - char buf[MAX_BUF_LEN], *q; > + char buf[MAX_BUF_LEN]; > const char *p; > - int len, delta, ret; > + int ret; > > - len = ARRAY_SIZE(buf); > - delta = snprintf(buf, len, "%s", event); > - if (delta >= len) { > - pr_err("Event name is too long: %s\n", event); > - return -E2BIG; > - } > - len -= delta; q = buf + delta; > + synth_event_cmd_init(&cmd, buf, MAX_BUF_LEN); > + > + ret = synth_event_gen_cmd_start(&cmd, event, NULL); > + if (ret) > + return ret; > > xbc_node_for_each_array_value(node, "fields", anode, p) { > - delta = snprintf(q, len, " %s;", p); > - if (delta >= len) { > - pr_err("fields string is too long: %s\n", > p); > - return -E2BIG; > - } > - len -= delta; q += delta; > + ret = synth_event_add_field_str(&cmd, p); > + if (ret) > + return ret; > } > > - ret = synth_event_run_command(buf); > + ret = synth_event_gen_cmd_end(&cmd); > if (ret < 0) > pr_err("Failed to add synthetic event: %s\n", buf); > > - > return ret; > } > #else > diff --git a/kernel/trace/trace_events_hist.c > b/kernel/trace/trace_events_hist.c > index 5a910bb193e9..22cd7ecdfb92 100644 > --- a/kernel/trace/trace_events_hist.c > +++ b/kernel/trace/trace_events_hist.c > @@ -1752,12 +1752,7 @@ static int create_or_delete_synth_event(int > argc, char **argv) > return ret == -ECANCELED ? -EINVAL : ret; > } > > -int synth_event_run_command(const char *command) > -{ > - return trace_run_command(command, > create_or_delete_synth_event); > -} > - > -static int synth_event_run_cmd(struct dynevent_cmd *cmd) > +static int synth_event_run_command(struct dynevent_cmd *cmd) > { > struct synth_event *se; > int ret; > @@ -1787,7 +1782,7 @@ static int synth_event_run_cmd(struct > dynevent_cmd *cmd) > void synth_event_cmd_init(struct dynevent_cmd *cmd, char *buf, int > maxlen) > { > dynevent_cmd_init(cmd, buf, maxlen, DYNEVENT_TYPE_SYNTH, > - synth_event_run_cmd); > + synth_event_run_command); > } > EXPORT_SYMBOL_GPL(synth_event_cmd_init); >