Deleted Added
full compact
tbinstal.c (217365) tbinstal.c (222544)
1/******************************************************************************
2 *
3 * Module Name: tbinstal - ACPI table installation and removal
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2011, Intel Corp.

--- 130 unchanged lines hidden (view full) ---

139 Status = AcpiTbVerifyTable (TableDesc);
140 if (ACPI_FAILURE (Status) || !TableDesc->Pointer)
141 {
142 return_ACPI_STATUS (Status);
143 }
144 }
145
146 /*
1/******************************************************************************
2 *
3 * Module Name: tbinstal - ACPI table installation and removal
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2011, Intel Corp.

--- 130 unchanged lines hidden (view full) ---

139 Status = AcpiTbVerifyTable (TableDesc);
140 if (ACPI_FAILURE (Status) || !TableDesc->Pointer)
141 {
142 return_ACPI_STATUS (Status);
143 }
144 }
145
146 /*
147 * Originally, we checked the table signature for "SSDT" or "PSDT" here.
148 * Next, we added support for OEMx tables, signature "OEM".
149 * Valid tables were encountered with a null signature, so we've just
150 * given up on validating the signature, since it seems to be a waste
151 * of code. The original code was removed (05/2008).
147 * Validate the incoming table signature.
148 *
149 * 1) Originally, we checked the table signature for "SSDT" or "PSDT".
150 * 2) We added support for OEMx tables, signature "OEM".
151 * 3) Valid tables were encountered with a null signature, so we just
152 * gave up on validating the signature, (05/2008).
153 * 4) We encountered non-AML tables such as the MADT, which caused
154 * interpreter errors and kernel faults. So now, we once again allow
155 * only "SSDT", "OEMx", and now, also a null signature. (05/2011).
152 */
156 */
157 if ((TableDesc->Pointer->Signature[0] != 0x00) &&
158 (!ACPI_COMPARE_NAME (TableDesc->Pointer->Signature, ACPI_SIG_SSDT)) &&
159 (ACPI_STRNCMP (TableDesc->Pointer->Signature, "OEM", 3)))
160 {
161 ACPI_ERROR ((AE_INFO,
162 "Table has invalid signature [%4.4s] (0x%8.8X), must be SSDT or OEMx",
163 AcpiUtValidAcpiName (*(UINT32 *) TableDesc->Pointer->Signature) ?
164 TableDesc->Pointer->Signature : "????",
165 *(UINT32 *) TableDesc->Pointer->Signature));
153
166
167 return_ACPI_STATUS (AE_BAD_SIGNATURE);
168 }
169
154 (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
155
156 /* Check if table is already registered */
157
158 for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
159 {
160 if (!AcpiGbl_RootTableList.Tables[i].Pointer)
161 {

--- 554 unchanged lines hidden ---
170 (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
171
172 /* Check if table is already registered */
173
174 for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
175 {
176 if (!AcpiGbl_RootTableList.Tables[i].Pointer)
177 {

--- 554 unchanged lines hidden ---