aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei Wang <wei.wang2@amd.com>2012-05-25 08:18:47 +0100
committerWei Wang <wei.wang2@amd.com>2012-05-25 08:18:47 +0100
commit2581d1fb42995d973f9fcebf96dafbd05d6d13f7 (patch)
tree51de36c0b4dab8d368b27f0b243bcf9bbb80130a
parent33807e74f32ba03a74d5f14d86d0f43c1218d54d (diff)
downloadxen-2581d1fb42995d973f9fcebf96dafbd05d6d13f7.tar.gz
xen-2581d1fb42995d973f9fcebf96dafbd05d6d13f7.tar.bz2
xen-2581d1fb42995d973f9fcebf96dafbd05d6d13f7.zip
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
-rwxr-xr-x[-rw-r--r--]tools/security/python/xensec_tools/acm_getlabel0
-rw-r--r--xen/arch/x86/acpi/cpu_idle.c7
2 files changed, 5 insertions, 2 deletions
diff --git a/tools/security/python/xensec_tools/acm_getlabel b/tools/security/python/xensec_tools/acm_getlabel
index 8d5fe22461..8d5fe22461 100644..100755
--- a/tools/security/python/xensec_tools/acm_getlabel
+++ b/tools/security/python/xensec_tools/acm_getlabel
diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 146224c044..122e7f90cb 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -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);