summaryrefslogtreecommitdiffstats
path: root/kernel/rcupreempt.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-05 11:59:10 +0100
committerIngo Molnar <mingo@elte.hu>2009-03-05 11:59:10 +0100
commit49d2d266adff27793fed247a2e9e672d59b6ddc6 (patch)
treeaa23052f8b6e9f1a96e56873c940eef7110f0013 /kernel/rcupreempt.c
parentMerge branches 'sched/clock', 'sched/urgent' and 'linus' into sched/core (diff)
parentLinux 2.6.29-rc7 (diff)
downloadlinux-49d2d266adff27793fed247a2e9e672d59b6ddc6.tar.xz
linux-49d2d266adff27793fed247a2e9e672d59b6ddc6.zip
Merge commit 'v2.6.29-rc7' into sched/core
Diffstat (limited to 'kernel/rcupreempt.c')
-rw-r--r--kernel/rcupreempt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/rcupreempt.c b/kernel/rcupreempt.c
index 33cfc50781f9..5d59e850fb71 100644
--- a/kernel/rcupreempt.c
+++ b/kernel/rcupreempt.c
@@ -1181,6 +1181,9 @@ void __synchronize_sched(void)
{
struct rcu_synchronize rcu;
+ if (num_online_cpus() == 1)
+ return; /* blocking is gp if only one CPU! */
+
init_completion(&rcu.completion);
/* Will wake me after RCU finished. */
call_rcu_sched(&rcu.head, wakeme_after_rcu);