summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2018-06-30 19:45:42 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2018-06-30 19:45:42 +0000
commit5e438f486bcfd41a0f937789eb36f33d32724c82 (patch)
tree11b519dbf92573b4f73df4961b0249182bd21ca6
parent706c786ce70df246bde1b61a09016119adf2ab25 (diff)
Use 64-bit DSDT pointer instead of the 32-bit one if it is zero.
ok deraadt@
-rw-r--r--usr.sbin/acpidump/acpidump.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/usr.sbin/acpidump/acpidump.c b/usr.sbin/acpidump/acpidump.c
index fdad67a7895..697c15bc46d 100644
--- a/usr.sbin/acpidump/acpidump.c
+++ b/usr.sbin/acpidump/acpidump.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpidump.c,v 1.18 2018/06/24 10:39:59 kettenis Exp $ */
+/* $OpenBSD: acpidump.c,v 1.19 2018/06/30 19:45:41 kettenis Exp $ */
/*
* Copyright (c) 2000 Mitsuru IWASAKI <iwasaki@FreeBSD.org>
* All rights reserved.
@@ -532,7 +532,10 @@ acpi_handle_facp(struct FACPbody *facp)
struct ACPIsdt *dsdp;
acpi_print_facp(facp);
- dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->dsdt_ptr);
+ if (facp->dsdt_ptr == 0)
+ dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->x_dsdt);
+ else
+ dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->dsdt_ptr);
if (acpi_checksum(dsdp, dsdp->len))
errx(1, "DSDT is corrupt");
acpi_handle_dsdt(dsdp);