diff options
| author | Nate Lawson <njl@FreeBSD.org> | 2003-09-14 00:37:52 +0000 |
|---|---|---|
| committer | Nate Lawson <njl@FreeBSD.org> | 2003-09-14 00:37:52 +0000 |
| commit | 2e71eb12574acd0412b4c1570535dbe121adb27b (patch) | |
| tree | c391924191d32a2b2bf636fcf15ad7ef50cb4054 /usr.sbin/acpi | |
| parent | c2c6548b3a08607903f853683343053c5fef94cb (diff) | |
Notes
Diffstat (limited to 'usr.sbin/acpi')
| -rw-r--r-- | usr.sbin/acpi/acpidump/acpi.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/usr.sbin/acpi/acpidump/acpi.c b/usr.sbin/acpi/acpidump/acpi.c index 91aec03acbea..9e6916661874 100644 --- a/usr.sbin/acpi/acpidump/acpi.c +++ b/usr.sbin/acpi/acpidump/acpi.c @@ -792,7 +792,13 @@ dsdt_from_fadt(struct FADTbody *fadt) { struct ACPIsdt *sdt; - sdt = (struct ACPIsdt *)acpi_map_sdt(fadt->dsdt_ptr); + /* Use the DSDT address if it is valid and version 2, else X_DSDT */ + if (addr_size == 4 || + (addr_size == 8 && fadt->dsdt_ptr != 0 && + (fadt->x_dsdt_ptr & 0xffffffff) != fadt->dsdt_ptr)) + sdt = (struct ACPIsdt *)acpi_map_sdt(fadt->dsdt_ptr); + else + sdt = (struct ACPIsdt *)acpi_map_sdt(fadt->x_dsdt_ptr); if (acpi_checksum(sdt, sdt->len)) errx(1, "DSDT is corrupt\n"); return (sdt); |
