diff options
author | Keir Fraser <keir@xen.org> | 2011-02-24 09:32:41 +0000 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2011-02-24 09:32:41 +0000 |
commit | 0132f2f2fc9b6c1ff6b4ae105a5d5bcdb2755836 (patch) | |
tree | a79337ab67702aa23ba3c81ade8d4ac7cd6a767a | |
parent | 3af87a7ece7f27a537a006196873ca9fda696616 (diff) | |
download | xen-0132f2f2fc9b6c1ff6b4ae105a5d5bcdb2755836.tar.gz xen-0132f2f2fc9b6c1ff6b4ae105a5d5bcdb2755836.tar.bz2 xen-0132f2f2fc9b6c1ff6b4ae105a5d5bcdb2755836.zip |
x86: Fix mwait usage when doing cpu offline
When cpu is offlined, it cannot access per cpu variable at all.
This patch avoids using per_cpu variable inside play_dead.
Signed-off-by: Shan Haitao <haitao.shan@intel.com>
Signed-off-by: Wei Gang <gang.wei@intel.com>
-rw-r--r-- | xen/arch/x86/acpi/cpu_idle.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c index a55269fcda..bb2da8926b 100644 --- a/xen/arch/x86/acpi/cpu_idle.c +++ b/xen/arch/x86/acpi/cpu_idle.c @@ -569,7 +569,8 @@ static void acpi_dead_idle(void) { case ACPI_CSTATE_EM_FFH: /* Not treat interrupt as break event */ - mwait_idle_with_hints(cx->address, 0); + __monitor((void *)&mwait_wakeup(smp_processor_id()), 0, 0); + __mwait(cx->address, 0); break; case ACPI_CSTATE_EM_SYSIO: inb(cx->address); |