Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc45b1d3 authored by Bob Moore's avatar Bob Moore Committed by Len Brown
Browse files

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=10454



Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLin Ming <ming.m.lin@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 7aa7d433
Loading
Loading
Loading
Loading
+7 −18
Original line number Diff line number Diff line
@@ -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 */

	if (!ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_PSDT)&&
	    !ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_SSDT)&&
	    strncmp(table_desc->pointer->signature, "OEM", 3)) {
		/* Check for a printable name */
		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);
	}
	/*
	 * Originally, we checked the table signature for "SSDT" or "PSDT" here.
	 * Next, we added support for OEMx tables, signature "OEM".
	 * Valid tables were encountered with a null signature, so we've just
	 * given up on validating the signature, since it seems to be a waste
	 * of code. The original code was removed (05/2008).
	 */

	(void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);