4f646f3
	commit 64b3db22c04586997ab4be46dd5a5b99f8a2d390 (2.6.39),
4f646f3
"Remove use of unreliable FADT revision field" causes regression
4f646f3
for old P4 systems because now cst_control and other fields are
4f646f3
not reset to 0.
4f646f3
4f646f3
	The effect is that acpi_processor_power_init will notice
4f646f3
cst_control != 0 and a write to CST_CNT register is performed
4f646f3
that should not happen. As result, the system oopses after the
4f646f3
"No _CST, giving up" message, sometimes in acpi_ns_internalize_name,
4f646f3
sometimes in acpi_ns_get_type, usually at random places. May be
4f646f3
during migration to CPU 1 in acpi_processor_get_throttling.
4f646f3
4f646f3
	Every one of these settings help to avoid this problem:
4f646f3
 - acpi=off
4f646f3
 - processor.nocst=1
4f646f3
 - maxcpus=1
4f646f3
4f646f3
	The fix is to update acpi_gbl_FADT.header.length after
4f646f3
the original value is used to check for old revisions.
4f646f3
4f646f3
Signed-off-by: Julian Anastasov <ja@ssi.bg>
4f646f3
---
4f646f3
 drivers/acpi/acpica/tbfadt.c |    8 ++++----
4f646f3
 1 files changed, 4 insertions(+), 4 deletions(-)
4f646f3
4f646f3
diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c
4f646f3
index c5d8704..4c9c760 100644
4f646f3
--- a/drivers/acpi/acpica/tbfadt.c
4f646f3
+++ b/drivers/acpi/acpica/tbfadt.c
4f646f3
@@ -363,10 +363,6 @@ static void acpi_tb_convert_fadt(void)
4f646f3
 	u32 address32;
4f646f3
 	u32 i;
4f646f3
 
4f646f3
-	/* Update the local FADT table header length */
4f646f3
-
4f646f3
-	acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
4f646f3
-
4f646f3
 	/*
4f646f3
 	 * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary.
4f646f3
 	 * Later code will always use the X 64-bit field. Also, check for an
4f646f3
@@ -408,6 +404,10 @@ static void acpi_tb_convert_fadt(void)
4f646f3
 		acpi_gbl_FADT.boot_flags = 0;
4f646f3
 	}
4f646f3
 
4f646f3
+	/* Update the local FADT table header length */
4f646f3
+
4f646f3
+	acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
4f646f3
+
4f646f3
 	/*
4f646f3
 	 * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X"
4f646f3
 	 * generic address structures as necessary. Later code will always use
4f646f3
-- 
4f646f3
1.7.3.4
4f646f3
4f646f3
--
4f646f3
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
4f646f3
the body of a message to majordomo@vger.kernel.org
4f646f3
More majordomo info at  http://vger.kernel.org/majordomo-info.html