提交 bc45b1d3 编写于 作者: B Bob Moore 提交者: Len Brown

ACPICA: Ignore ACPI table signature for Load() operator

Only "SSDT" is acceptable to the ACPI spec, but tables are
seen with OEMx and null sigs. Therefore, signature validation
is worthless.  Apparently MS ACPI accepts such signatures, ACPICA
must be compatible.

http://bugzilla.kernel.org/show_bug.cgi?id=10454Signed-off-by: NBob Moore <robert.moore@intel.com>
Signed-off-by: NLin Ming <ming.m.lin@intel.com>
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 7aa7d433
...@@ -123,24 +123,13 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, ...@@ -123,24 +123,13 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc,
} }
} }
/* The table must be either an SSDT or a PSDT or an OEMx */ /*
* Originally, we checked the table signature for "SSDT" or "PSDT" here.
if (!ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_PSDT)&& * Next, we added support for OEMx tables, signature "OEM".
!ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_SSDT)&& * Valid tables were encountered with a null signature, so we've just
strncmp(table_desc->pointer->signature, "OEM", 3)) { * given up on validating the signature, since it seems to be a waste
/* Check for a printable name */ * of code. The original code was removed (05/2008).
if (acpi_ut_valid_acpi_name( */
*(u32 *) table_desc->pointer->signature)) {
ACPI_ERROR((AE_INFO, "Table has invalid signature "
"[%4.4s], must be SSDT or PSDT",
table_desc->pointer->signature));
} else {
ACPI_ERROR((AE_INFO, "Table has invalid signature "
"(0x%8.8X), must be SSDT or PSDT",
*(u32 *) table_desc->pointer->signature));
}
return_ACPI_STATUS(AE_BAD_SIGNATURE);
}
(void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES); (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册