]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rtla: Handle pthread_create() failure properly
authorWander Lairson Costa <wander@redhat.com>
Mon, 9 Mar 2026 19:46:22 +0000 (16:46 -0300)
committerTomas Glozar <tglozar@redhat.com>
Wed, 11 Mar 2026 14:29:50 +0000 (15:29 +0100)
Add proper error handling when pthread_create() fails to create the
timerlat user-space dispatcher thread. Previously, the code only logged
an error message but continued execution, which could lead to undefined
behavior when the tool later expects the thread to be running.

When pthread_create() returns an error, the function now jumps to the
out_trace error path to properly clean up resources and exit. This
ensures consistent error handling and prevents the tool from running
in an invalid state without the required user-space thread.

Signed-off-by: Wander Lairson Costa <wander@redhat.com>
Link: https://lore.kernel.org/r/20260309195040.1019085-10-wander@redhat.com
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
tools/tracing/rtla/src/common.c

index a00b5e55354583771873e21a9e8fb2022f0891c6..50d8aafdfd3b911bbcd03ab42fa2ab3cb3b723ce 100644 (file)
@@ -336,8 +336,10 @@ int run_tool(struct tool_ops *ops, int argc, char *argv[])
                params->user.cgroup_name = params->cgroup_name;
 
                retval = pthread_create(&user_thread, NULL, timerlat_u_dispatcher, &params->user);
-               if (retval)
+               if (retval) {
                        err_msg("Error creating timerlat user-space threads\n");
+                       goto out_trace;
+               }
        }
 
        retval = ops->enable(tool);