From 340a177e8664125bac483a07fd8ccb2af1f5bb39 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Wed, 1 Feb 2012 15:56:54 -0500 Subject: [PATCH] --- yaml --- r: 287617 b: refs/heads/master c: 41bd956de3dfdc3a43708fe2e0c8096c69064a1e h: refs/heads/master i: 287615: 98f07afcaf1e6c3144ca2c7c43450a2405afea39 v: v3 --- [refs] | 2 +- trunk/arch/x86/xen/smp.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 43f9eea6d007..b447a2d5d519 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5b02aa1e6e7cf7d3bbf8027dc7e05e0eb2f1e828 +refs/heads/master: 41bd956de3dfdc3a43708fe2e0c8096c69064a1e diff --git a/trunk/arch/x86/xen/smp.c b/trunk/arch/x86/xen/smp.c index 041d4fe9dfe4..501d4e0244ba 100644 --- a/trunk/arch/x86/xen/smp.c +++ b/trunk/arch/x86/xen/smp.c @@ -409,6 +409,13 @@ static void __cpuinit xen_play_dead(void) /* used only with HOTPLUG_CPU */ play_dead_common(); HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); cpu_bringup(); + /* + * Balance out the preempt calls - as we are running in cpu_idle + * loop which has been called at bootup from cpu_bringup_and_idle. + * The cpucpu_bringup_and_idle called cpu_bringup which made a + * preempt_disable() So this preempt_enable will balance it out. + */ + preempt_enable(); } #else /* !CONFIG_HOTPLUG_CPU */