From 74dd356dcd0383b2c8567d31fab29bc315292e06 Mon Sep 17 00:00:00 2001 From: Tomasz Gajewski Date: Sun, 14 Feb 2016 12:24:56 +0100 Subject: [PATCH] Add check for ACPI version during parsing tables, fix #1883 --- repos/os/src/drivers/acpi/acpi.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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);