rcu: Set rdp->gpwrap when CPU is idle
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 13 Dec 2015 16:57:10 +0000 (08:57 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 24 Feb 2016 03:59:52 +0000 (19:59 -0800)
commit23a9bacd357ab8388c7e07101b186a4282874992
tree4764d724950b9f227699311cf66304f55cfa36a6
parent4914950aaa12de8a2004b8031b45480526caf42b
rcu: Set rdp->gpwrap when CPU is idle

Commit #e3663b1024d1 ("rcu: Handle gpnum/completed wrap while dyntick
idle") sets rdp->gpwrap on the wrong side of the "if" statement in
dyntick_save_progress_counter(), that is, it sets it when the CPU is
not idle instead of when it is idle.  Of course, if the CPU is not idle,
its rdp->gpnum won't be lagging beind the global rsp->gpnum, which means
that rdp->gpwrap will never be set.

This commit therefore moves this code to the proper leg of that "if"
statement.  This change means that the "else" cause is just "return 0"
and the "then" clause ends with "return 1", so also move the "return 0"
to follow the "if", dropping the "else" clause.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.c