ACPICA: Tables: Cleanup table checksum verification code.

This patch reduces code redundancy by moving the FACS/S3PT checksum
verification skip logic into acpi_tb_verify_checksum() and other
calls of this function also get benefit from this change.  Lv Zheng.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Reviewed-by: Len Brown <len.brown@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Lv Zheng 2013-09-23 09:52:29 +08:00 committed by Rafael J. Wysocki
parent 424deb3870
commit 94d4be6773
2 changed files with 13 additions and 9 deletions

View File

@ -80,16 +80,10 @@ acpi_status acpi_tb_verify_table(struct acpi_table_desc *table_desc)
} }
} }
/* FACS is the odd table, has no standard ACPI header and no checksum */ /* Always calculate checksum, ignore bad checksum if requested */
if (!ACPI_COMPARE_NAME(&table_desc->signature, ACPI_SIG_FACS)) { status =
acpi_tb_verify_checksum(table_desc->pointer, table_desc->length);
/* Always calculate checksum, ignore bad checksum if requested */
status =
acpi_tb_verify_checksum(table_desc->pointer,
table_desc->length);
}
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }

View File

@ -190,6 +190,16 @@ acpi_status acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length)
{ {
u8 checksum; u8 checksum;
/*
* FACS/S3PT:
* They are the odd tables, have no standard ACPI header and no checksum
*/
if (ACPI_COMPARE_NAME(table->signature, ACPI_SIG_S3PT) ||
ACPI_COMPARE_NAME(table->signature, ACPI_SIG_FACS)) {
return (AE_OK);
}
/* Compute the checksum on the table */ /* Compute the checksum on the table */
checksum = acpi_tb_checksum(ACPI_CAST_PTR(u8, table), length); checksum = acpi_tb_checksum(ACPI_CAST_PTR(u8, table), length);