diff options
Diffstat (limited to 'arch/x86/xen/smp.c')
| -rw-r--r-- | arch/x86/xen/smp.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index 041d4fe9dfe..501d4e0244b 100644 --- a/arch/x86/xen/smp.c +++ b/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 */  |