On Wed, 2020-01-29 at 12:52 -0500, Steven Rostedt wrote: > On Fri, 24 Jan 2020 16:56:13 -0600 > Tom Zanussi <zanussi@xxxxxxxxxx> wrote: > > > +/** > > + * trace_put_event_file - Release a file from > > trace_get_event_file() > > + * @file: The trace event file > > + * > > + * If a file was retrieved using trace_get_event_file(), this > > should > > + * be called when it's no longer needed. It will cancel the > > previous > > + * trace_array_get() called by that function, and decrement the > > + * event's module refcount. > > + */ > > +void trace_put_event_file(struct trace_event_file *file) > > +{ > > + trace_array_put(file->tr); > > + > > + mutex_lock(&event_mutex); > > + module_put(file->event_call->mod); > > + mutex_unlock(&event_mutex); > > I believe the trace_array_put() needs to be at the end. Otherwise, I > believe the file could be freed before the event_mutex is taken. > > I'll swap it, as I'm trying to get this into the merge window. OK, thanks, Tom > > -- Steve > > > +} > > +EXPORT_SYMBOL_GPL(trace_put_event_file); > > + > > #ifdef CONFIG_DYNAMIC_FTRACE > > > > /* Avoid typos */ > >