tracing: Do not synchronize freeing of trigger filter on boot up
If a trigger filter on the kernel command line fails to apply (due to syntax error), it will be freed. The freeing will call tracepoint_synchronize_unregister(), but this is not needed during early boot up, and will even trigger a lockdep splat. Avoid calling the synchronization function when system_state is SYSTEM_BOOTING. Link: https://lore.kernel.org/linux-trace-kernel/20221213172429.7774f4ba@gandalf.local.home Cc: Andrew Morton <akpm@linux-foundation.org> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
fab89a09c8
commit
fb9f5ee9bf
|
@ -1085,8 +1085,14 @@ int set_trigger_filter(char *filter_str,
|
|||
rcu_assign_pointer(data->filter, filter);
|
||||
|
||||
if (tmp) {
|
||||
/* Make sure the call is done with the filter */
|
||||
tracepoint_synchronize_unregister();
|
||||
/*
|
||||
* Make sure the call is done with the filter.
|
||||
* It is possible that a filter could fail at boot up,
|
||||
* and then this path will be called. Avoid the synchronization
|
||||
* in that case.
|
||||
*/
|
||||
if (system_state != SYSTEM_BOOTING)
|
||||
tracepoint_synchronize_unregister();
|
||||
free_event_filter(tmp);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue