On Sun, Nov 28, 2021 at 02:10:15PM -0500, Steven Rostedt wrote: > On Sun, 28 Nov 2021 13:48:05 -0500 > Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > > +++ b/kernel/trace/trace_events.c > > @@ -2677,12 +2677,23 @@ static struct trace_event_file * > > trace_create_new_event(struct trace_event_call *call, > > struct trace_array *tr) > > { > > + struct trace_pid_list *no_pid_list; > > + struct trace_pid_list *pid_list; > > struct trace_event_file *file; > > + unsigned int first; > > > > And even though this was the first fix, I somehow got a bit of the 5.16 > patch in here, as the "first" variable is only used for that. > > Take two: > > From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx> > Subject: [PATCH] tracing: Check pid filtering when creating events > > When pid filtering is activated in an instance, all of the events trace > files for that instance has the PID_FILTER flag set. This determines > whether or not pid filtering needs to be done on the event, otherwise the > event is executed as normal. > > If pid filtering is enabled when an event is created (via a dynamic event > or modules), its flag is not updated to reflect the current state, and the > events are not filtered properly. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 3fdaf80f4a836 ("tracing: Implement event pid filtering") > Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> > --- > kernel/trace/trace_events.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > Index: linux-test.git/kernel/trace/trace_events.c > =================================================================== > --- linux-test.git.orig/kernel/trace/trace_events.c > +++ linux-test.git/kernel/trace/trace_events.c > @@ -2462,12 +2462,22 @@ static struct trace_event_file * > trace_create_new_event(struct trace_event_call *call, > struct trace_array *tr) > { > + struct trace_pid_list *no_pid_list; > + struct trace_pid_list *pid_list; > struct trace_event_file *file; > > file = kmem_cache_alloc(file_cachep, GFP_TRACE); > if (!file) > return NULL; > > + pid_list = rcu_dereference_protected(tr->filtered_pids, > + lockdep_is_held(&event_mutex)); > + no_pid_list = rcu_dereference_protected(tr->filtered_no_pids, > + lockdep_is_held(&event_mutex)); > + > + if (pid_list || no_pid_list) > + file->flags |= EVENT_FILE_FL_PID_FILTER; > + > file->event_call = call; > file->tr = tr; > atomic_set(&file->sm_ref, 0); Oops, now I see this one, thanks... greg "read the whole thread before reponding" k-h