]> git.karo-electronics.de Git - karo-tx-linux.git/commit
rcu: Make offline-CPU checking allow for indefinite delays
authorPaul E. McKenney <paul.mckenney@linaro.org>
Wed, 1 Aug 2012 21:29:20 +0000 (14:29 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 3 Aug 2012 15:50:40 +0000 (08:50 -0700)
commit956b53de2ecfbaef9ddf156153de6a8b85f35720
treed4bb14734e7b4fdd810a38f947c9db8332ee7ced
parentb50da8de85585de40d1f084139369e9483432381
rcu: Make offline-CPU checking allow for indefinite delays

The rcu_implicit_offline_qs() function implicitly assumed that execution
would progress predictably when interrupts are disabled, which is of course
not guaranteed when running on a hypervisor.  Furthermore, this function
is short, and is called from one place only in a short function.

This commit therefore ensures that the timing is checked before
checking the condition, which guarantees correct behavior even given
indefinite delays.  It also inlines rcu_implicit_offline_qs() into
rcu_implicit_dynticks_qs().

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree.c