Date: Fri, 2 Apr 2010 17:00:37 +0000 (UTC) From: Jung-uk Kim <jkim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r206107 - vendor-sys/acpica/dist/tables Message-ID: <201004021700.o32H0bp2017859@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004021700.o32H0bp2017859>