# HG changeset patch
# User Wei Wang <wei.wang2@amd.com>
# Date 1337930327 -3600
# Node ID 435493696053a079ec17d6e1a63e5f2be3a2c9d0
# Parent 35248be669e71520eb40e85986b106bd5164d7ea
x86/cpuidle: do not flush cache unless entering C3
Nor is there a need to disable bus master arbitration in that case.
Signed-off-by: Wei Wang <wei.wang2@amd.com>
Modified-by: Zhang, Yang Z <yang.z.zhang@intel.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Committed-by: Jan Beulich <jbeulich@suse.com>
xen-unstable changeset: 25195:a06e6cdeafe3
xen-unstable date: Mon Apr 16 13:05:28 2012 +0200
diff -r 35248be669e7 -r 435493696053 xen/arch/x86/acpi/cpu_idle.c
--- a/xen/arch/x86/acpi/cpu_idle.c Mon May 14 16:59:12 2012 +0100
+++ b/xen/arch/x86/acpi/cpu_idle.c Fri May 25 08:18:47 2012 +0100
@@ -483,7 +483,9 @@ static void acpi_processor_idle(void)
* not set. In that case we cannot do much, we enter C3
* without doing anything.
*/
- if ( power->flags.bm_check && power->flags.bm_control )
+ if ( cx->type != ACPI_STATE_C3 )
+ /* nothing to be done here */;
+ else if ( power->flags.bm_check && power->flags.bm_control )
{
spin_lock(&c3_cpu_status.lock);
if ( ++c3_cpu_status.count == num_online_cpus() )
@@ -505,7 +507,8 @@ static void acpi_processor_idle(void)
/* Invoke C3 */
acpi_idle_do_entry(cx);
- if ( power->flags.bm_check && power->flags.bm_control )
+ if ( (cx->type == ACPI_STATE_C3) &&
+ power->flags.bm_check && power->flags.bm_control )
{
/* Enable bus master arbitration */
spin_lock(&c3_cpu_status.lock);