Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=79fff270026dc46634563a29b99e4034028ee919
Commit:     79fff270026dc46634563a29b99e4034028ee919
Parent:     de46c33745f5e2ad594c72f2cf5f490861b16ce1
Author:     Bob Moore <[EMAIL PROTECTED]>
AuthorDate: Sat Apr 28 20:53:50 2007 -0400
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Sat Apr 28 20:55:06 2007 -0400

    ACPICA: clear fields reserved before FADT r3
    
    Linux-2.6.21 stopped booting on a P4/HT because Linux
    wrote the FADT.CST_CNT value to the SMI_CMD.
    Apparently this stumbled over some SMM instability,
    such as confusing SMM when invoking it from cpu1.
    
    Linux did this because even though the r2 FADT reserves
    the CST_CNT field, this BIOS set that field and Linux
    used it.
    
    Turns out that up through 2.6.20 we explicitly cleared
    cst_control for r2 FADTs.  So here we go back to doing that,
    plus also clear some additional fields that are reserved
    until FADT r3.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=8346
    
    Signed-off-by: Bob Moore <[EMAIL PROTECTED]>
    Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/tables/tbfadt.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/tables/tbfadt.c b/drivers/acpi/tables/tbfadt.c
index 807c711..1db833e 100644
--- a/drivers/acpi/tables/tbfadt.c
+++ b/drivers/acpi/tables/tbfadt.c
@@ -347,6 +347,18 @@ static void acpi_tb_convert_fadt(void)
                acpi_gbl_xpm1b_enable.space_id = 
acpi_gbl_FADT.xpm1a_event_block.space_id;
 
        }
+
+       /*
+        * For ACPI 1.0 FADTs, ensure that reserved fields (which should be 
zero)
+        * are indeed zero. This will workaround BIOSs that inadvertently placed
+        * values in these fields.
+        */
+       if (acpi_gbl_FADT.header.revision < 3) {
+               acpi_gbl_FADT.preferred_profile = 0;
+               acpi_gbl_FADT.pstate_control = 0;
+               acpi_gbl_FADT.cst_control = 0;
+               acpi_gbl_FADT.boot_flags = 0;
+       }
 }
 
 /******************************************************************************
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to