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 */