On Wed, Jul 15, 2026 at 03:44:55PM +0800, Jackie Liu wrote:
> From: Jackie Liu <[email protected]>
> 
> remote_events_dir_enable_write() ignores the return value from
> trace_remote_enable_event(). If a remote rejects an event state change,
> the write therefore reports success even though the affected event remains
> in its previous state.
> 
> Keep trying all events, but retain and return the first error. This matches
> __ftrace_set_clr_event_nolock(), which permits partial updates while
> notifying userspace when an operation fails.
> 
> Fixes: 775cb093bc50 ("tracing: Add events/ root files to trace remotes")
> Assisted-by: Codex:gpt-5.6-sol
> Signed-off-by: Jackie Liu <[email protected]>

Thanks!

Reviewed-by: Vincent Donnefort <[email protected]>

> ---
>  Changes in v2:
> - Move the eret declaration after evt to follow reverse Christmas tree
>   ordering.
> 
>  kernel/trace/trace_remote.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/trace_remote.c b/kernel/trace/trace_remote.c
> index 0f6ef5c36d84..daeaf1d3eb1c 100644
> --- a/kernel/trace/trace_remote.c
> +++ b/kernel/trace/trace_remote.c
> @@ -1150,10 +1150,21 @@ static ssize_t remote_events_dir_enable_write(struct 
> file *filp, const char __us
>  
>       for (i = 0; i < remote->nr_events; i++) {
>               struct remote_event *evt = &remote->events[i];
> +             int eret;
>  
> -             trace_remote_enable_event(remote, evt, enable);
> +             eret = trace_remote_enable_event(remote, evt, enable);
> +             /*
> +              * Save the first error and return that. Some events
> +              * may still have been enabled, but let the user
> +              * know that something went wrong.
> +              */
> +             if (!ret && eret)
> +                     ret = eret;
>       }
>  
> +     if (ret)
> +             return ret;
> +
>       return count;
>  }
>  
> -- 
> 2.54.0
> 

Reply via email to