]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: Remove _rcu_barrier() dependency on __stop_machine()
authorPaul E. McKenney <paul.mckenney@linaro.org>
Fri, 3 Aug 2012 00:43:50 +0000 (17:43 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 23 Sep 2012 14:43:55 +0000 (07:43 -0700)
commit5c9213d8b9aefd2c387c722f26c5ce3f347b2b1a
tree596d9ed379ef7e2c5d8cf1cc0ba56ade084548ec
parent5b28ced6b8c2a347091845b3df036cef4215b5ef
rcu: Remove _rcu_barrier() dependency on __stop_machine()

Currently, _rcu_barrier() relies on preempt_disable() to prevent
any CPU from going offline, which in turn depends on CPU hotplug's
use of __stop_machine().

This patch therefore makes _rcu_barrier() use get_online_cpus() to
block CPU-hotplug operations.  This has the added benefit of removing
the need for _rcu_barrier() to adopt callbacks:  Because CPU-hotplug
operations are excluded, there can be no callbacks to adopt.  This
commit simplifies the code accordingly.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_trace.c