ACPICA: Tables: Do not validate signature for dynamic table load
[linux-2.6-block.git] / drivers / acpi / acpica / tbinstal.c
index 4620f3c68c13d9c653f8ef92ab7a688a404c4b4c..9d212967fad851f8749b0ed3c0c65497ef6fafbb 100644 (file)
@@ -222,34 +222,6 @@ acpi_tb_install_standard_table(acpi_physical_address address,
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
 
        if (reload) {
-               /*
-                * Validate the incoming table signature.
-                *
-                * 1) Originally, we checked the table signature for "SSDT" or "PSDT".
-                * 2) We added support for OEMx tables, signature "OEM".
-                * 3) Valid tables were encountered with a null signature, so we just
-                *    gave up on validating the signature, (05/2008).
-                * 4) We encountered non-AML tables such as the MADT, which caused
-                *    interpreter errors and kernel faults. So now, we once again allow
-                *    only "SSDT", "OEMx", and now, also a null signature. (05/2011).
-                */
-               if ((new_table_desc.signature.ascii[0] != 0x00) &&
-                   (!ACPI_COMPARE_NAME
-                    (&new_table_desc.signature, ACPI_SIG_SSDT))
-                   && (strncmp(new_table_desc.signature.ascii, "OEM", 3))) {
-                       ACPI_BIOS_ERROR((AE_INFO,
-                                        "Table has invalid signature [%4.4s] (0x%8.8X), "
-                                        "must be SSDT or OEMx",
-                                        acpi_ut_valid_nameseg(new_table_desc.
-                                                              signature.
-                                                              ascii) ?
-                                        new_table_desc.signature.
-                                        ascii : "????",
-                                        new_table_desc.signature.integer));
-
-                       status = AE_BAD_SIGNATURE;
-                       goto unlock_and_exit;
-               }
 
                /* Check if table is already registered */
 
@@ -306,14 +278,10 @@ acpi_tb_install_standard_table(acpi_physical_address address,
        acpi_tb_install_table_with_override(&new_table_desc, override,
                                            table_index);
 
-       /* Invoke table handler if present */
+       /* Invoke table handler */
 
        (void)acpi_ut_release_mutex(ACPI_MTX_TABLES);
-       if (acpi_gbl_table_handler) {
-               (void)acpi_gbl_table_handler(ACPI_TABLE_EVENT_INSTALL,
-                                            new_table_desc.pointer,
-                                            acpi_gbl_table_handler_context);
-       }
+       acpi_tb_notify_table(ACPI_TABLE_EVENT_INSTALL, new_table_desc.pointer);
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
 
 unlock_and_exit: