xen: restore runstate_info even if !have_vcpu_info_placement

Even if have_vcpu_info_placement is not set, we still need to set up
the runstate area on each resumed vcpu.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stable Kernel <stable@kernel.org>
This commit is contained in:
Jeremy Fitzhardinge
2009-11-21 08:46:29 +08:00
parent be012920ec
commit 3905bb2aa7

View File

@@ -138,26 +138,23 @@ static void xen_vcpu_setup(int cpu)
*/ */
void xen_vcpu_restore(void) void xen_vcpu_restore(void)
{ {
if (have_vcpu_info_placement) { int cpu;
int cpu;
for_each_online_cpu(cpu) { for_each_online_cpu(cpu) {
bool other_cpu = (cpu != smp_processor_id()); bool other_cpu = (cpu != smp_processor_id());
if (other_cpu && if (other_cpu &&
HYPERVISOR_vcpu_op(VCPUOP_down, cpu, NULL)) HYPERVISOR_vcpu_op(VCPUOP_down, cpu, NULL))
BUG(); BUG();
xen_setup_runstate_info(cpu); xen_setup_runstate_info(cpu);
if (have_vcpu_info_placement)
xen_vcpu_setup(cpu); xen_vcpu_setup(cpu);
if (other_cpu && if (other_cpu &&
HYPERVISOR_vcpu_op(VCPUOP_up, cpu, NULL)) HYPERVISOR_vcpu_op(VCPUOP_up, cpu, NULL))
BUG(); BUG();
}
BUG_ON(!have_vcpu_info_placement);
} }
} }