svn commit: r206107 - vendor-sys/acpica/dist/tables

Jung-uk Kim jkim at FreeBSD.org
Fri Apr 2 17:00:37 UTC 2010


Author: jkim
Date: Fri Apr  2 17:00:37 2010
New Revision: 206107
URL: http://svn.freebsd.org/changeset/base/206107

Log:
  Fixes for table load regression.
  
  http://git.moblin.org/cgit.cgi/acpica/commit/?id=e4c530f4e71d70804ed911d41d922dce4cea8b23
  http://git.moblin.org/cgit.cgi/acpica/commit/?id=67a1ef8c98791bd4a0fb84fe0c2feff7082151dc
  
  Obtained from:	Intel

Modified:
  vendor-sys/acpica/dist/tables/tbxface.c

Modified: vendor-sys/acpica/dist/tables/tbxface.c
==============================================================================
--- vendor-sys/acpica/dist/tables/tbxface.c	Fri Apr  2 16:57:25 2010	(r206106)
+++ vendor-sys/acpica/dist/tables/tbxface.c	Fri Apr  2 17:00:37 2010	(r206107)
@@ -552,18 +552,13 @@ AcpiTbLoadNamespace (
     (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
 
     /*
-     * Save the DSDT pointer for simple access. This is the mapped memory
-     * address. We must take care here because the address of the .Tables
-     * array can change dynamically as tables are loaded at run-time
-     */
-    AcpiGbl_DSDT = AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Pointer;
-
-    /*
      * Load the namespace. The DSDT is required, but any SSDT and
      * PSDT tables are optional. Verify the DSDT.
      */
     if (!AcpiGbl_RootTableList.Count ||
-        !ACPI_COMPARE_NAME (AcpiGbl_DSDT->Signature, ACPI_SIG_DSDT) ||
+        !ACPI_COMPARE_NAME (
+            &(AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Signature),
+            ACPI_SIG_DSDT) ||
          ACPI_FAILURE (AcpiTbVerifyTable (
             &AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT])))
     {
@@ -572,6 +567,14 @@ AcpiTbLoadNamespace (
     }
 
     /*
+     * Save the DSDT pointer for simple access. This is the mapped memory
+     * address. We must take care here because the address of the .Tables
+     * array can change dynamically as tables are loaded at run-time. Note:
+     * .Pointer field is not validated until after call to AcpiTbVerifyTable.
+     */
+    AcpiGbl_DSDT = AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Pointer;
+
+    /*
      * Optionally copy the entire DSDT to local memory (instead of simply
      * mapping it.) There are some BIOSs that corrupt or replace the original
      * DSDT, creating the need for this option. Default is FALSE, do not copy


More information about the svn-src-vendor mailing list