• Paul E. McKenney's avatar
    rcu: Avoid tick_dep_set_cpu() misordering · 5b14557b
    Paul E. McKenney authored
    In the current code, rcu_nmi_enter_common() might decide to turn on
    the tick using tick_dep_set_cpu(), but be delayed just before doing so.
    Then the grace-period kthread might notice that the CPU in question had
    in fact gone through a quiescent state, thus turning off the tick using
    tick_dep_clear_cpu().  The later invocation of tick_dep_set_cpu() would
    then incorrectly leave the tick on.
    
    This commit therefore enlists the aid of the leaf rcu_node structure's
    ->lock to ensure that decisions to enable or disable the tick are
    carried out before they can be reversed.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    5b14557b
tree.c 115 KB