diff options
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/acpica/Osd/OsdTable.c | 7 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi.c | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/sys/dev/acpica/Osd/OsdTable.c b/sys/dev/acpica/Osd/OsdTable.c index a70e73e6b841f..58c01cd8e5415 100644 --- a/sys/dev/acpica/Osd/OsdTable.c +++ b/sys/dev/acpica/Osd/OsdTable.c @@ -45,13 +45,18 @@ AcpiOsTableOverride ( { caddr_t acpi_dsdt, p; - if (NewTable == NULL) + if (ExistingTable == NULL || NewTable == NULL) { return(AE_BAD_PARAMETER); } (*NewTable) = NULL; + if (strncmp(ExistingTable->Signature, "DSDT", 4) != 0) + { + return(AE_OK); + } + if ((acpi_dsdt = preload_search_by_type("acpi_dsdt")) == NULL) { return(AE_OK); diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index b292bcc6422e0..9ccaf2dbfe736 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -387,6 +387,11 @@ acpi_attach(device_t dev) goto out; } + if (ACPI_FAILURE(status = AcpiInitializeObjects(flags))) { + device_printf(dev, "could not initialize ACPI objects: %s\n", AcpiFormatException(status)); + goto out; + } + /* * Setup our sysctl tree. * |
