ACPICA: Fix table compare code, length then data
Split the ACPI table compare. First check that the lengths match exactly. Then compare the data. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
9db4fcd99f
commit
a6f30539f3
|
@ -110,7 +110,6 @@ acpi_status
|
|||
acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
|
||||
{
|
||||
u32 i;
|
||||
u32 length;
|
||||
acpi_status status = AE_OK;
|
||||
|
||||
ACPI_FUNCTION_TRACE(tb_add_table);
|
||||
|
@ -145,13 +144,18 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
|
|||
}
|
||||
}
|
||||
|
||||
/* Check for a table match on the entire table length */
|
||||
/*
|
||||
* Check for a table match on the entire table length,
|
||||
* not just the header.
|
||||
*/
|
||||
if (table_desc->length !=
|
||||
acpi_gbl_root_table_list.tables[i].length) {
|
||||
continue;
|
||||
}
|
||||
|
||||
length = ACPI_MIN(table_desc->length,
|
||||
acpi_gbl_root_table_list.tables[i].length);
|
||||
if (ACPI_MEMCMP(table_desc->pointer,
|
||||
acpi_gbl_root_table_list.tables[i].pointer,
|
||||
length)) {
|
||||
acpi_gbl_root_table_list.tables[i].length)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue