tracing/user_events: Hold event_mutex during dyn_event_add
PATCH 1/1 tracing/user_events: Hold event_mutex during dyn_event_add
Make sure the event_mutex is properly held during dyn_event_add call. This is required when adding dynamic events.
Reported-by Mathieu Desnoyers <[email protected]>
Signed-off-by Beau Belgrave <[email protected]>
--- kernel/trace/trace_events_user.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
kernel/trace/trace_events_user.c +6 -2
@@ -1165,11 +1165,11 @@ static int user_event_parse(char *name, char *args, char *flags,#endif mutex_lock (&event_mutex); + ret =user_event_trace_register (user); -mutex_unlock (&event_mutex);if (ret) - goto put_user; + goto put_user_lock; user->index = index;
@@ -1181,8 +1181,12 @@ static int user_event_parse(char *name, char *args, char *flags,set_bit (user->index, page_bitmap);hash_add (register_table, &user->node, key); +mutex_unlock (&event_mutex); + *newuser = user;return 0 ; +put_user_lock: +mutex_unlock (&event_mutex); put_user:user_event_destroy_fields (user);user_event_destroy_validators (user);
base-commit: c87857e214862a125208a4b1a510839d0c5a1bd4
Signature · 1 line
2.25.1
Quoted 3 lines · On Mon, 28 Mar 2022 15:32:25 -0700 Beau Belgrave <[email protected]>…
Make sure the
event_mutexis properly held duringdyn_event_addcall. This is required when adding dynamic events.
Good catch!
Acked-by Masami Hiramatsu <[email protected]>
Thank you,
Quoted 42 lines
Reported-by Mathieu Desnoyers <[email protected]>Signed-off-by Beau Belgrave <[email protected]>--- kernel/trace/trace_events_user.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)kernel/trace/trace_events_user.c +6
-2@@ -1165,11 +1165,11 @@ static int user_event_parse(char *name, char *args, char *flags,#endif mutex_lock (&event_mutex); + ret =user_event_trace_register (user); -mutex_unlock (&event_mutex);if (ret) - goto put_user; + goto put_user_lock; user->index = index;@@ -1181,8 +1181,12 @@ static int user_event_parse(char *name, char *args, char *flags,set_bit (user->index, page_bitmap);hash_add (register_table, &user->node, key); +mutex_unlock (&event_mutex); + *newuser = user;return 0 ; +put_user_lock: +mutex_unlock (&event_mutex); put_user:user_event_destroy_fields (user);user_event_destroy_validators (user);base-commit:
c87857e214862a125208a4b1a510839d0c5a1bd4Signature · 1 line
2.25.1
Signature · 1 line
Masami Hiramatsu <[email protected]>