diff --git a/repos/os/src/drivers/acpi/acpi.cc b/repos/os/src/drivers/acpi/acpi.cc index 326d6e07c..e2ed12c67 100644 --- a/repos/os/src/drivers/acpi/acpi.cc +++ b/repos/os/src/drivers/acpi/acpi.cc @@ -1223,10 +1223,11 @@ class Acpi_table addr_t const rsdt = rsdp->rsdt; addr_t const xsdt = rsdp->xsdt; + uint8_t const acpi_revision = rsdp->revision; /* drop rsdp io_mem mapping since rsdt/xsdt may overlap */ env()->parent()->close(io_mem); - if (xsdt && sizeof(addr_t) != sizeof(uint32_t)) { + if (acpi_revision != 0 && xsdt && sizeof(addr_t) != sizeof(uint32_t)) { /* running 64bit and xsdt is valid */ Table_wrapper table(xsdt); uint64_t * entries = reinterpret_cast(table.table() + 1);