--- drivers/acpi/osl.c +++ drivers/acpi/osl.c @@ -70,6 +70,7 @@ static OSD_HANDLER acpi_irq_handler = NULL; static void *acpi_irq_context = NULL; +extern unsigned char AmlCode[]; acpi_status acpi_os_initialize(void) @@ -221,7 +222,10 @@ if (!existing_table || !new_table) return AE_BAD_PARAMETER; - *new_table = NULL; + if (strncmp(existing_table->signature, "DSDT", 4) == 0) + *new_table = (acpi_table_header*)AmlCode; + else + *new_table = NULL; return AE_OK; }