xcp-1.6-updates/xen-4.1.hg

changeset 23298:435493696053

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
author Wei Wang <wei.wang2@amd.com>
date Fri May 25 08:18:47 2012 +0100 (2012-05-25)
parents 35248be669e7
children f08e61b9b33f
files tools/security/python/xensec_tools/acm_getlabel xen/arch/x86/acpi/cpu_idle.c
line diff
     2.1 --- a/xen/arch/x86/acpi/cpu_idle.c	Mon May 14 16:59:12 2012 +0100
     2.2 +++ b/xen/arch/x86/acpi/cpu_idle.c	Fri May 25 08:18:47 2012 +0100
     2.3 @@ -483,7 +483,9 @@ static void acpi_processor_idle(void)
     2.4           * not set. In that case we cannot do much, we enter C3
     2.5           * without doing anything.
     2.6           */
     2.7 -        if ( power->flags.bm_check && power->flags.bm_control )
     2.8 +        if ( cx->type != ACPI_STATE_C3 )
     2.9 +            /* nothing to be done here */;
    2.10 +        else if ( power->flags.bm_check && power->flags.bm_control )
    2.11          {
    2.12              spin_lock(&c3_cpu_status.lock);
    2.13              if ( ++c3_cpu_status.count == num_online_cpus() )
    2.14 @@ -505,7 +507,8 @@ static void acpi_processor_idle(void)
    2.15          /* Invoke C3 */
    2.16          acpi_idle_do_entry(cx);
    2.17  
    2.18 -        if ( power->flags.bm_check && power->flags.bm_control )
    2.19 +        if ( (cx->type == ACPI_STATE_C3) &&
    2.20 +             power->flags.bm_check && power->flags.bm_control )
    2.21          {
    2.22              /* Enable bus master arbitration */
    2.23              spin_lock(&c3_cpu_status.lock);