]> xenbits.xensource.com Git - xen.git/commitdiff
x86 acpi: Fix crash in enable_nonboot_cpus() on wakeup from S3/S4
authorKeir Fraser <keir@xen.org>
Fri, 14 Jan 2011 14:18:31 +0000 (14:18 +0000)
committerKeir Fraser <keir@xen.org>
Fri, 14 Jan 2011 14:18:31 +0000 (14:18 +0000)
Bringing a CPU back online can require RCU work to be flushed, because
the per-cpu data from last time the CPU was online may not yet be
deallocated. Use the new rcu_barrier() interface function to achieve
this.

Signed-off-by: Keir Fraser <keir@xen.org>
xen/arch/x86/acpi/power.c

index b4a633d544ec09734d0e5baec76ac22e31bc6cf1..5dfdeb431f912fdc0c48fe9f42072e219951c59b 100644 (file)
@@ -206,6 +206,7 @@ static int enter_state(u32 state)
  enable_cpu:
     cpufreq_add_cpu(0);
     microcode_resume_cpu(0);
+    rcu_barrier();
     mtrr_aps_sync_begin();
     enable_nonboot_cpus();
     mtrr_aps_sync_end();