diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2009-11-22 11:53:49 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-11-22 12:58:16 -0500 |
commit | 9f680ab41485edfdc96331b70afa7513aa0a7720 (patch) | |
tree | 620b34f8129c0ea4ddee033c9875a9f60bfba2ae /kernel/rcutree.c | |
parent | b668c9cf3e58739dac54a1d6f42f2b4bdd980b3e (diff) |
rcu: Eliminate unneeded function wrapping
The functions rcu_init() is a wrapper for __rcu_init(), and also
sets up the CPU-hotplug notifier for rcu_barrier_cpu_hotplug().
But TINY_RCU doesn't need CPU-hotplug notification, and the
rcu_barrier_cpu_hotplug() is a simple wrapper for
rcu_cpu_notify().
So push rcu_init() out to kernel/rcutree.c and kernel/rcutiny.c
and get rid of the wrapper function rcu_barrier_cpu_hotplug().
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: josh@joshtriplett.org
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
Cc: Valdis.Kletnieks@vt.edu
Cc: dhowells@redhat.com
LKML-Reference: <12589088302320-git-send-email->
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r-- | kernel/rcutree.c | 17 |
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 | */ |
1647 | int __cpuinit rcu_cpu_notify(struct notifier_block *self, | 1647 | static 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 | ||
1784 | void __init __rcu_init(void) | 1784 | void __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" |