Re: FAILED: patch "[PATCH] tracing: Check pid filtering when creating events" failed to apply to 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 28, 2021 at 01:48:05PM -0500, Steven Rostedt wrote:
> On Sun, 28 Nov 2021 12:44:01 +0100
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> 
> > The patch below does not apply to the 5.10-stable tree.
> > If someone wants it applied there, or to any other stable or longterm
> > tree, then please email the backport, including the original git commit
> > id to <stable@xxxxxxxxxxxxxxx>.
> 
> This is a funny case, where I actually found the bug in the 5.15 kernel
> that I was using to do my cut and paste screen shots for the upcoming
> Embedded Fest conference I'll be giving a talk at on Friday.
> 
> I wrote this fix for 5.15 first (to continue working on my
> presentation), and since stable requires upstream to have the fix, I
> forward ported it to 5.16-rc. As 5.16 introduced changes in this code,
> the forward port had to do things differently, and my forward port
> added a bug which the fix has just been added:
> 
>   https://git.kernel.org/torvalds/c/f8132d62a2deedca1b7558028cfe72f93ad5ba2d
> 
> That fix does not need to be backported, as the origin 5.15 patch did
> not have that bug.
> 
> This is the original 5.15 patch I used to create the 5.16 version with,
> and it should also fix 5.10. Kernels before 5.7 will need a different
> patch, as it did not have the "no_pid" feature yet. I'll send out the
> fix for those kernels later.
> 
> -- Steve
> 
> Upstream commit: 6cb206508b621a9a0a2c35b60540e399225c8243
> 
> 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(+)
> 
> diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
> index 830b3b9940f4..e760e078c733 100644
> --- a/kernel/trace/trace_events.c
> +++ 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;
>  
>  	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);
> -- 
> 2.33.0

Why did you add the first variable here?

I get the build failure:

kernel/trace/trace_events.c: In function ‘trace_create_new_event’:
kernel/trace/trace_events.c:2684:22: error: unused variable ‘first’ [-Werror=unused-variable]
 2684 |         unsigned int first;
      |                      ^~~~~
cc1: all warnings being treated as errors

because of that.

I'll go remove that line, but please, test-build your patches at the
very least :)

thanks,

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux