Re: [PATCH v3 02/12] tracing: Add trace_get/put_event_file()
From: Steven Rostedt
Date:  Wed Jan 29 2020 - 12:53:02 EST
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.
-- Steve
> +}
> +EXPORT_SYMBOL_GPL(trace_put_event_file);
> +
>  #ifdef CONFIG_DYNAMIC_FTRACE
>  
>  /* Avoid typos */