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 000000000..d6b590389 --- /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 +--- + 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@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 e1388fb16..3d8376403 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 +- Add patch to fix regression in FADT revision checks (rhbz 730007 727865) + * Mon Feb 27 2012 Josh Boyer - 3.3.0-0.rc5.git1.1 - Linux 3.3-rc5-git1 (upstream 500dd2370e77c9551ba298bdeeb91b02d8402199) - Reenable debugging options.