[kernel] Add patch to fix regression in FADT revision checks (rhbz 730007 727865)

Josh Boyer jwboyer at fedoraproject.org
Mon Feb 27 19:22:20 UTC 2012


commit 4f646f3602b25445e9e4fd1f073ea5a1f1222834
Author: Josh Boyer <jwboyer at redhat.com>
Date:   Mon Feb 27 14:21:30 2012 -0500

    Add patch to fix regression in FADT revision checks (rhbz 730007 727865)

 ...CA-Fix-regression-in-FADT-revision-checks.patch |   58 ++++++++++++++++++++
 kernel.spec                                        |   11 ++++-
 2 files changed, 68 insertions(+), 1 deletions(-)
---
diff --git a/ACPICA-Fix-regression-in-FADT-revision-checks.patch b/ACPICA-Fix-regression-in-FADT-revision-checks.patch
new file mode 100644
index 0000000..d6b5903
--- /dev/null
+++ b/ACPICA-Fix-regression-in-FADT-revision-checks.patch
@@ -0,0 +1,58 @@
+	commit 64b3db22c04586997ab4be46dd5a5b99f8a2d390 (2.6.39),
+"Remove use of unreliable FADT revision field" causes regression
+for old P4 systems because now cst_control and other fields are
+not reset to 0.
+
+	The effect is that acpi_processor_power_init will notice
+cst_control != 0 and a write to CST_CNT register is performed
+that should not happen. As result, the system oopses after the
+"No _CST, giving up" message, sometimes in acpi_ns_internalize_name,
+sometimes in acpi_ns_get_type, usually at random places. May be
+during migration to CPU 1 in acpi_processor_get_throttling.
+
+	Every one of these settings help to avoid this problem:
+ - acpi=off
+ - processor.nocst=1
+ - maxcpus=1
+
+	The fix is to update acpi_gbl_FADT.header.length after
+the original value is used to check for old revisions.
+
+Signed-off-by: Julian Anastasov <ja at ssi.bg>
+---
+ drivers/acpi/acpica/tbfadt.c |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c
+index c5d8704..4c9c760 100644
+--- a/drivers/acpi/acpica/tbfadt.c
++++ b/drivers/acpi/acpica/tbfadt.c
+@@ -363,10 +363,6 @@ static void acpi_tb_convert_fadt(void)
+ 	u32 address32;
+ 	u32 i;
+ 
+-	/* Update the local FADT table header length */
+-
+-	acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
+-
+ 	/*
+ 	 * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary.
+ 	 * Later code will always use the X 64-bit field. Also, check for an
+@@ -408,6 +404,10 @@ static void acpi_tb_convert_fadt(void)
+ 		acpi_gbl_FADT.boot_flags = 0;
+ 	}
+ 
++	/* Update the local FADT table header length */
++
++	acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
++
+ 	/*
+ 	 * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X"
+ 	 * generic address structures as necessary. Later code will always use
+-- 
+1.7.3.4
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
+the body of a message to majordomo at vger.kernel.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html
\ No newline at end of file
diff --git a/kernel.spec b/kernel.spec
index e1388fb..3d83764 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -54,7 +54,7 @@ Summary: The Linux kernel
 # For non-released -rc kernels, this will be appended after the rcX and
 # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
 #
-%global baserelease 1
+%global baserelease 2
 %global fedora_build %{baserelease}
 
 # base_sublevel is the kernel version we're starting with and patching
@@ -771,6 +771,9 @@ Patch21270: s390x-enable-keys-compat.patch
 #rhbz 795544
 Patch21280: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch
 
+#rhbz 727865 730007
+Patch21300: ACPICA-Fix-regression-in-FADT-revision-checks.patch
+
 # compat-wireless patches
 Patch50000: compat-wireless-config-fixups.patch
 Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch
@@ -1487,6 +1490,9 @@ ApplyPatch s390x-enable-keys-compat.patch
 #rhbz 795544
 ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch
 
+#rhbz 727865 730007
+ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch
+
 # END OF PATCH APPLICATIONS
 
 %endif
@@ -2358,6 +2364,9 @@ fi
 #                 ||----w |
 #                 ||     ||
 %changelog
+* Mon Feb 27 2012 Josh Boyer <jwboyer at redhat.com>
+- Add patch to fix regression in FADT revision checks (rhbz 730007 727865)
+
 * Mon Feb 27 2012 Josh Boyer <jwboyer at redhat.com> - 3.3.0-0.rc5.git1.1
 - Linux 3.3-rc5-git1 (upstream 500dd2370e77c9551ba298bdeeb91b02d8402199)
 - Reenable debugging options.


More information about the scm-commits mailing list