Broken ACPI tables containing scopes that are larger than their outer shell
authorpatrick <patrick@openbsd.org>
Thu, 9 Dec 2021 20:21:35 +0000 (20:21 +0000)
committerpatrick <patrick@openbsd.org>
Thu, 9 Dec 2021 20:21:35 +0000 (20:21 +0000)
commit98863e5f3c95b3543b91c3043f6a03a844ff961a
treeab55d7416cc8be811a94568b3aa3c5b3618a081b
parent0f58689ada3335284d3b1d5e6ebc848684924e72
Broken ACPI tables containing scopes that are larger than their outer shell
are caught by our ACPI parser.  Unfortunately in such cases our reaction was
to start parsing AML somewhere outside our current scope.  The intention was
to clamp down the inner scope to the maximum of the outer one.  So, rectify it.

This issue has shown up in EDK2's QEMU SBSA target, where the SSDT table was
generated incorrectly.  Surprisingly neither Linux nor ACPICA's iASL noticed
that the table was broken.

ok kettenis@ millert@
sys/dev/acpi/dsdt.c