aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r--kernel/rcutree.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index b79bfcd28e95..e3d3bbddbcd5 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1644,8 +1644,8 @@ static void __cpuinit rcu_online_cpu(int cpu)
1644/* 1644/*
1645 * Handle CPU online/offline notification events. 1645 * Handle CPU online/offline notification events.
1646 */ 1646 */
1647int __cpuinit rcu_cpu_notify(struct notifier_block *self, 1647static int __cpuinit rcu_cpu_notify(struct notifier_block *self,
1648 unsigned long action, void *hcpu) 1648 unsigned long action, void *hcpu)
1649{ 1649{
1650 long cpu = (long)hcpu; 1650 long cpu = (long)hcpu;
1651 1651
@@ -1781,8 +1781,10 @@ do { \
1781 } \ 1781 } \
1782} while (0) 1782} while (0)
1783 1783
1784void __init __rcu_init(void) 1784void __init rcu_init(void)
1785{ 1785{
1786 int i;
1787
1786 rcu_bootup_announce(); 1788 rcu_bootup_announce();
1787#ifdef CONFIG_RCU_CPU_STALL_DETECTOR 1789#ifdef CONFIG_RCU_CPU_STALL_DETECTOR
1788 printk(KERN_INFO "RCU-based detection of stalled CPUs is enabled.\n"); 1790 printk(KERN_INFO "RCU-based detection of stalled CPUs is enabled.\n");
@@ -1791,6 +1793,15 @@ void __init __rcu_init(void)
1791 RCU_INIT_FLAVOR(&rcu_bh_state, rcu_bh_data); 1793 RCU_INIT_FLAVOR(&rcu_bh_state, rcu_bh_data);
1792 __rcu_init_preempt(); 1794 __rcu_init_preempt();
1793 open_softirq(RCU_SOFTIRQ, rcu_process_callbacks); 1795 open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
1796
1797 /*
1798 * We don't need protection against CPU-hotplug here because
1799 * this is called early in boot, before either interrupts
1800 * or the scheduler are operational.
1801 */
1802 cpu_notifier(rcu_cpu_notify, 0);
1803 for_each_online_cpu(i)
1804 rcu_cpu_notify(NULL, CPU_UP_PREPARE, (void *)(long)i);
1794} 1805}
1795 1806
1796#include "rcutree_plugin.h" 1807#include "rcutree_plugin.h"