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 --- |