summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2012-01-11 16:33:17 -0800
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2012-02-21 09:03:41 -0800
commit768dfffdffbfcc07d6927bdd642c714c0dd64c99 (patch)
tree3f559e37c0ff2ae59af963024c0d3595fa3d4b8e /include
parentafef20540f7cd1ea91bc1ac20be238389eee4003 (diff)
downloadlinux-stable-768dfffdffbfcc07d6927bdd642c714c0dd64c99.tar.gz
linux-stable-768dfffdffbfcc07d6927bdd642c714c0dd64c99.tar.bz2
linux-stable-768dfffdffbfcc07d6927bdd642c714c0dd64c99.zip
rcu: Prevent RCU callbacks from executing before scheduler initialized
This is a port of commit #b0d3041 from TREE_RCU to TREE_PREEMPT_RCU. Under some rare but real combinations of configuration parameters, RCU callbacks are posted during early boot that use kernel facilities that are not yet initialized. Therefore, when these callbacks are invoked, hard hangs and crashes ensue. This commit therefore prevents RCU callbacks from being invoked until after the scheduler is fully up and running, as in after multiple tasks have been spawned. It might well turn out that a better approach is to identify the specific RCU callbacks that are causing this problem, but that discussion will wait until such time as someone really needs an RCU callback to be invoked (as opposed to merely registered) during early boot. Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/rcutiny.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h
index 51bf29c81485..e93df77176d1 100644
--- a/include/linux/rcutiny.h
+++ b/include/linux/rcutiny.h
@@ -27,13 +27,9 @@
#include <linux/cache.h>
-#ifdef CONFIG_RCU_BOOST
static inline void rcu_init(void)
{
}
-#else /* #ifdef CONFIG_RCU_BOOST */
-void rcu_init(void);
-#endif /* #else #ifdef CONFIG_RCU_BOOST */
static inline void rcu_barrier_bh(void)
{