On Thu, 7 May 2020 16:50:53 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > On Thu, 7 May 2020 21:30:08 +0200 > Julia Lawall <Julia.Lawall@xxxxxxxx> wrote: > > > Elsewhere in the file, the function trace_kprobe_has_same_kprobe uses > > a trace_probe_event.probes object as the second argument of > > list_for_each_entry, ie as a list head, while the list_for_each_entry > > iterates over the list fields of the trace_probe structures, making > > them the list elements. So, exchange the arguments on the list_add > > call to put the list head in the second argument. > > > > Since both list_head structures were just initialized, this problem > > did not cause any loss of information. > > Oops, good catch! > > Fixes: 60d53e2c3b75 ("tracing/probe: Split trace_event related data from trace_probe") > > Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxxx> > > Masami, > > Can you give a Reviewed-by to this? Yes, thanks Julia! Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx> Thank you, > > -- Steve > > > > > --- > > kernel/trace/trace_probe.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c > > index ab8b6436d53f..b8a928e925c7 100644 > > --- a/kernel/trace/trace_probe.c > > +++ b/kernel/trace/trace_probe.c > > @@ -1006,7 +1006,7 @@ int trace_probe_init(struct trace_probe *tp, const char *event, > > INIT_LIST_HEAD(&tp->event->class.fields); > > INIT_LIST_HEAD(&tp->event->probes); > > INIT_LIST_HEAD(&tp->list); > > - list_add(&tp->event->probes, &tp->list); > > + list_add(&tp->list, &tp->event->probes); > > > > call = trace_probe_event_call(tp); > > call->class = &tp->event->class; > -- Masami Hiramatsu <mhiramat@xxxxxxxxxx>