rcu/nocb: Never downgrade ->nocb_defer_wakeup in wake_nocb_gp_defer()
authorPaul E. McKenney <paulmck@linux.ibm.com>
Thu, 23 May 2019 20:49:26 +0000 (13:49 -0700)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Tue, 13 Aug 2019 21:35:49 +0000 (14:35 -0700)
commit383e13328373ae1e17119ff89c86ff5f9413f31c
tree77bcdedf373eeede625403b406d4291d28803b60
parentaeeacd9d844b2219d47e9010298b635c68a2a4c9
rcu/nocb: Never downgrade ->nocb_defer_wakeup in wake_nocb_gp_defer()

Currently, wake_nocb_gp_defer() simply stores whatever waketype was
passed in, which can result in a RCU_NOCB_WAKE_FORCE being downgraded
to RCU_NOCB_WAKE, which could in turn delay callback processing.
This commit therefore adds a check so that wake_nocb_gp_defer() only
updates ->nocb_defer_wakeup when the update increases the forcefulness,
thus avoiding downgrades.

Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
kernel/rcu/tree_plugin.h