summaryrefslogtreecommitdiffstats
path: root/kernel/rcupreempt.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-05 21:48:31 +0100
committerIngo Molnar <mingo@elte.hu>2009-03-05 21:48:50 +0100
commita1413c89ae6a4b7a9a43f7768934a81ffb5c629a (patch)
tree7e16be26407c5fd4dfbfeb98b11590809a963664 /kernel/rcupreempt.c
parentf254f3909efaf59ca2d0f408de2d044dace60706 (diff)
parentdd4124a8a06bca89c077a16437edac010f0bb993 (diff)
downloadkernel-crypto-a1413c89ae6a4b7a9a43f7768934a81ffb5c629a.tar.gz
kernel-crypto-a1413c89ae6a4b7a9a43f7768934a81ffb5c629a.tar.xz
kernel-crypto-a1413c89ae6a4b7a9a43f7768934a81ffb5c629a.zip
Merge branch 'x86/urgent' into x86/core
Conflicts: arch/x86/include/asm/fixmap_64.h Semantic merge: arch/x86/include/asm/fixmap.h Signed-off-by: Ingo Molnar <mingo@elte.hu>
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 33cfc50781f..5d59e850fb7 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);