diff options
| -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 041d4fe9dfe4..501d4e0244ba 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 */ | |||
| 409 | play_dead_common(); | 409 | play_dead_common(); |
| 410 | HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); | 410 | HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); |
| 411 | cpu_bringup(); | 411 | cpu_bringup(); |
| 412 | /* | ||
| 413 | * Balance out the preempt calls - as we are running in cpu_idle | ||
| 414 | * loop which has been called at bootup from cpu_bringup_and_idle. | ||
| 415 | * The cpucpu_bringup_and_idle called cpu_bringup which made a | ||
| 416 | * preempt_disable() So this preempt_enable will balance it out. | ||
| 417 | */ | ||
| 418 | preempt_enable(); | ||
| 412 | } | 419 | } |
| 413 | 420 | ||
| 414 | #else /* !CONFIG_HOTPLUG_CPU */ | 421 | #else /* !CONFIG_HOTPLUG_CPU */ |
