From: Jean Guyader Date: Sat, 25 Jul 2009 13:05:55 +0000 (+0100) Subject: On some lenovo laptop, playing with the bus master arbitration X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=2e02f1f05ef9625b82ca212828818d379d6ecebb;p=xenclient%2Fxen-pq.git On some lenovo laptop, playing with the bus master arbitration makes them hang. Disable that for now. --- diff --git a/master/disable-abr b/master/disable-abr new file mode 100644 index 0000000..c9eedc3 --- /dev/null +++ b/master/disable-abr @@ -0,0 +1,47 @@ +diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c +index 4bab139..839532b 100644 +--- a/xen/arch/x86/acpi/cpu_idle.c ++++ b/xen/arch/x86/acpi/cpu_idle.c +@@ -184,10 +184,12 @@ static int acpi_idle_bm_check(void) + return bm_status; + } + ++#if 0 + static struct { + spinlock_t lock; + unsigned int count; + } c3_cpu_status = { .lock = SPIN_LOCK_UNLOCKED }; ++#endif + + static void acpi_processor_idle(void) + { +@@ -282,6 +284,7 @@ static void acpi_processor_idle(void) + */ + if ( power->flags.bm_check && power->flags.bm_control ) + { ++#if 0 + spin_lock(&c3_cpu_status.lock); + if ( ++c3_cpu_status.count == num_online_cpus() ) + { +@@ -292,6 +295,7 @@ static void acpi_processor_idle(void) + acpi_set_register(ACPI_BITREG_ARB_DISABLE, 1); + } + spin_unlock(&c3_cpu_status.lock); ++#endif + } + else if ( !power->flags.bm_check ) + { +@@ -323,11 +327,13 @@ static void acpi_processor_idle(void) + + if ( power->flags.bm_check && power->flags.bm_control ) + { ++#if 0 + /* Enable bus master arbitration */ + spin_lock(&c3_cpu_status.lock); + if ( c3_cpu_status.count-- == num_online_cpus() ) + acpi_set_register(ACPI_BITREG_ARB_DISABLE, 0); + spin_unlock(&c3_cpu_status.lock); ++#endif + } + + /* Re-enable interrupts */ diff --git a/master/series b/master/series index 541c9af..9b86abe 100644 --- a/master/series +++ b/master/series @@ -13,3 +13,4 @@ remove-fixed-host-bridge-check mtrr-changes video-memory-workaround tools-hvm-info +disable-abr