• Steven Rostedt (VMware)'s avatar
    tracing/samples: Fix creation and deletion of simple_thread_fn creation · 6575257c
    Steven Rostedt (VMware) authored
    Commit 7496946a ("tracing: Add samples of DECLARE_EVENT_CLASS() and
    DEFINE_EVENT()") added template examples for all the events. It created a
    DEFINE_EVENT_FN() example which reused the foo_bar_reg and foo_bar_unreg
    functions.
    
    Enabling both the TRACE_EVENT_FN() and DEFINE_EVENT_FN() example trace
    events caused the foo_bar_reg to be called twice, creating the test thread
    twice. The foo_bar_unreg would remove it only once, even if it was called
    multiple times, leaving a thread existing when the module is unloaded,
    causing an oops.
    
    Add a ref count and allow foo_bar_reg() and foo_bar_unreg() be called by
    multiple trace events.
    
    Cc: stable@vger.kernel.org
    Fixes: 7496946a ("tracing: Add samples of DECLARE_EVENT_CLASS() and DEFINE_EVENT()")
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    6575257c
trace-events-sample.c 2.83 KB