aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/acpica/Osd/OsdTable.c7
-rw-r--r--sys/dev/acpica/acpi.c5
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.
*