Message ID | 170622977792.270660.2789298642759362200.stgit@devnote2 (mailing list archive) |
---|---|
State | Accepted |
Commit | 0958b33ef5a04ed91f61cef4760ac412080c4e08 |
Headers | show |
Series | tracing/trigger: Fix to return error if failed to alloc snapshot | expand |
On Fri, 26 Jan 2024 09:42:58 +0900 "Masami Hiramatsu (Google)" <mhiramat@kernel.org> wrote: > From: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > Fix register_snapshot_trigger() to return error code if it failed to > allocate a snapshot instead of 0 (success). Unless that, it will register > snapshot trigger without an error. > > Fixes: 0bbe7f719985 ("tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation") > Cc: stable@vger.kernel.org > Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Thanks Masami, I'll apply this. -- Steve > --- > kernel/trace/trace_events_trigger.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c > index 46439e3bcec4..b33c3861fbbb 100644 > --- a/kernel/trace/trace_events_trigger.c > +++ b/kernel/trace/trace_events_trigger.c > @@ -1470,8 +1470,10 @@ register_snapshot_trigger(char *glob, > struct event_trigger_data *data, > struct trace_event_file *file) > { > - if (tracing_alloc_snapshot_instance(file->tr) != 0) > - return 0; > + int ret = tracing_alloc_snapshot_instance(file->tr); > + > + if (ret < 0) > + return ret; > > return register_trigger(glob, data, file); > }
diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c index 46439e3bcec4..b33c3861fbbb 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c @@ -1470,8 +1470,10 @@ register_snapshot_trigger(char *glob, struct event_trigger_data *data, struct trace_event_file *file) { - if (tracing_alloc_snapshot_instance(file->tr) != 0) - return 0; + int ret = tracing_alloc_snapshot_instance(file->tr); + + if (ret < 0) + return ret; return register_trigger(glob, data, file); }