Re: [PATCH v3 02/12] tracing: Add trace_get/put_event_file()
From: Tom Zanussi
Date: Wed Jan 29 2020 - 14:05:11 EST
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 */
>
>