summaryrefslogtreecommitdiff
path: root/kernel/rcupreempt.c
diff options
context:
space:
mode:
authorFelix Blyakher <felixb@sgi.com>2009-03-06 17:06:44 -0600
committerFelix Blyakher <felixb@sgi.com>2009-03-06 17:06:44 -0600
commit47d1ff6e1a24c0126cd0243b1d6d0a3ffbd7a026 (patch)
treeb53cd3df68e3a199f6764c619c1a5092d27547e2 /kernel/rcupreempt.c
parentb79631330a653f568a2ac4eb4a32474c80e3fe77 (diff)
parent559595a985e106d2fa9f0c79b7f5805453fed593 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
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);