]> err.no Git - linux-2.6/blobdiff - drivers/acpi/tables/tbrsdt.c
ACPICA 20050708 from Bob Moore <robert.moore@intel.com>
[linux-2.6] / drivers / acpi / tables / tbrsdt.c
index 13c6ddb2f5466c048ab984c0b1bc7b973bb68e22..069d498465d0a1221012ec7a190cf93ac82a69c5 100644 (file)
@@ -96,32 +96,13 @@ acpi_tb_verify_rsdp (
                return_ACPI_STATUS (AE_BAD_PARAMETER);
        }
 
-       /*
-        *  The signature and checksum must both be correct
-        */
-       if (ACPI_STRNCMP ((char *) rsdp, RSDP_SIG, sizeof (RSDP_SIG)-1) != 0) {
-               /* Nope, BAD Signature */
-
-               status = AE_BAD_SIGNATURE;
-               goto cleanup;
-       }
-
-       /* Check the standard checksum */
+       /* Verify RSDP signature and checksum */
 
-       if (acpi_tb_checksum (rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0) {
-               status = AE_BAD_CHECKSUM;
+       status = acpi_tb_validate_rsdp (rsdp);
+       if (ACPI_FAILURE (status)) {
                goto cleanup;
        }
 
-       /* Check extended checksum if table version >= 2 */
-
-       if (rsdp->revision >= 2) {
-               if (acpi_tb_checksum (rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0) {
-                       status = AE_BAD_CHECKSUM;
-                       goto cleanup;
-               }
-       }
-
        /* The RSDP supplied is OK */
 
        table_info.pointer     = ACPI_CAST_PTR (struct acpi_table_header, rsdp);