]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blob - recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0017-ACPICA-Fix-regression-in-FADT-revision-checks.patch
linux-ti335x-psp 3.2: update to 3.2.16
[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-ti33x-psp-3.2 / 3.2.15 / 0017-ACPICA-Fix-regression-in-FADT-revision-checks.patch
1 From 3dc8e6e70444a964715bc72938d2a1f5330a0aff Mon Sep 17 00:00:00 2001
2 From: Julian Anastasov <ja@ssi.bg>
3 Date: Thu, 23 Feb 2012 22:40:43 +0200
4 Subject: [PATCH 17/60] ACPICA: Fix regression in FADT revision checks
6 commit 3e80acd1af40fcd91a200b0416a7616b20c5d647 upstream.
8         commit 64b3db22c04586997ab4be46dd5a5b99f8a2d390 (2.6.39),
9 "Remove use of unreliable FADT revision field" causes regression
10 for old P4 systems because now cst_control and other fields are
11 not reset to 0.
13         The effect is that acpi_processor_power_init will notice
14 cst_control != 0 and a write to CST_CNT register is performed
15 that should not happen. As result, the system oopses after the
16 "No _CST, giving up" message, sometimes in acpi_ns_internalize_name,
17 sometimes in acpi_ns_get_type, usually at random places. May be
18 during migration to CPU 1 in acpi_processor_get_throttling.
20         Every one of these settings help to avoid this problem:
21  - acpi=off
22  - processor.nocst=1
23  - maxcpus=1
25         The fix is to update acpi_gbl_FADT.header.length after
26 the original value is used to check for old revisions.
28 https://bugzilla.kernel.org/show_bug.cgi?id=42700
29 https://bugzilla.redhat.com/show_bug.cgi?id=727865
31 Signed-off-by: Julian Anastasov <ja@ssi.bg>
32 Acked-by: Bob Moore <robert.moore@intel.com>
33 Signed-off-by: Len Brown <len.brown@intel.com>
34 Cc: Jonathan Nieder <jrnieder@gmail.com>
35 Cc: Josh Boyer <jwboyer@gmail.com>
36 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
37 ---
38  drivers/acpi/acpica/tbfadt.c |    8 ++++----
39  1 file changed, 4 insertions(+), 4 deletions(-)
41 diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c
42 index 6f5588e..4c531b4 100644
43 --- a/drivers/acpi/acpica/tbfadt.c
44 +++ b/drivers/acpi/acpica/tbfadt.c
45 @@ -350,10 +350,6 @@ static void acpi_tb_convert_fadt(void)
46         u32 address32;
47         u32 i;
48  
49 -       /* Update the local FADT table header length */
50 -
51 -       acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
52 -
53         /*
54          * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary.
55          * Later code will always use the X 64-bit field. Also, check for an
56 @@ -395,6 +391,10 @@ static void acpi_tb_convert_fadt(void)
57                 acpi_gbl_FADT.boot_flags = 0;
58         }
59  
60 +       /* Update the local FADT table header length */
61 +
62 +       acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
63 +
64         /*
65          * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X"
66          * generic address structures as necessary. Later code will always use
67 -- 
68 1.7.9.5