I've found a problem in acpi.cc that caused not parsing acpi tables
properly on my pc. The problem is that there is an incomplete check for
usability of xsdt table. According to some documentation on the net
value 0 in revision entry in rsdp means that this is acpi 1.0 and xsdt
table is not available but this was not checked.

Attached patch fixed this issue for me.

-- 
Tomasz Gajewski

diff --git a/repos/os/src/drivers/acpi/acpi.cc b/repos/os/src/drivers/acpi/acpi.cc
index 326d6e0..e2ed12c 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<uint64_t *>(table.table() + 1);
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to