Skip to content
  • Steven Rostedt (Red Hat)'s avatar
    ftrace: Use manual free after synchronize_sched() not call_rcu_sched() · 7818b388
    Steven Rostedt (Red Hat) authored
    
    
    The entries to the probe hash must be freed after a synchronize_sched()
    after the entry has been removed from the hash.
    
    As the entries are registered with ops that may have their own callbacks,
    and these callbacks may sleep, we can not use call_rcu_sched() because
    the rcu callbacks registered with that are called from a softirq context.
    
    Instead of using call_rcu_sched(), manually save the entries on a free_list
    and at the end of the loop that removes the entries, do a synchronize_sched()
    and then go through the free_list, freeing the entries.
    
    Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    7818b388