From: Masami Hiramatsu (Google) <[email protected]>

Sashiko pointed that this sample code does not correctly handle the
failure of thread creation because kthread_run() can return -errno.

Check the simple_tsk_fn is correctly initialized (created) or not.

Link: 
https://sashiko.dev/#/patchset/178092865666.163648.10457567771536160909.stgit%40devnote2

Fixes: 9cfe06f8cd5c ("tracing/events: add trace-events-sample")
Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
---
 Changes in v4:
   - Fix to remove decrementing counter in error path, since foo_bar_reg() 
always returns 0.
   - Add a newline to error message.
 Changes in v3:
   - Recover the usage counter.
---
 samples/trace_events/trace-events-sample.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/samples/trace_events/trace-events-sample.c 
b/samples/trace_events/trace-events-sample.c
index ecc7db237f2e..0b7a6efdb247 100644
--- a/samples/trace_events/trace-events-sample.c
+++ b/samples/trace_events/trace-events-sample.c
@@ -107,6 +107,10 @@ int foo_bar_reg(void)
         * for consistency sake, we still take the thread_mutex.
         */
        simple_tsk_fn = kthread_run(simple_thread_fn, NULL, "event-sample-fn");
+       if (IS_ERR_OR_NULL(simple_tsk_fn)) {
+               pr_err("Failed to create simple_thread_fn\n");
+               simple_tsk_fn = NULL;
+       }
  out:
        mutex_unlock(&thread_mutex);
        return 0;


Reply via email to