• P
    rcu: Make synchronize_sched_expedited() call wait_rcu_gp() · 30ff1533
    Paul E. McKenney 提交于
    Currently, synchronize_sched_expedited() will call synchronize_sched()
    if there is danger of counter wrap.  But if configuration says to
    always do expedited grace periods, synchronize_sched() will just
    call synchronize_sched_expedited() right back again.  In theory,
    the old expedited operations will complete, the counters will
    get back in synch, and the recursion will end.  But we could
    easily run out of stack long before that time.  This commit
    therefore makes synchronize_sched_expedited() invoke the underlying
    wait_rcu_gp(call_rcu_sched) instead of synchronize_sched(), the same as
    all the other calls out from synchronize_sched_expedited().
    
    This bug was introduced by commit 1924bcb0 (Avoid counter wrap in
    synchronize_sched_expedited()).
    Reported-by: NRik van Riel <riel@redhat.com>
    Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    30ff1533
tree.c 128.1 KB