Please sign in to comment.
Namespace: remove address node from global list after method termination
ASL OperationRegions declare a range of addresses that it uses. In a perfect world, the range of addresses should be used exclusively by the AML interpreter. The OS can use this information to decide which drivers to load so that the AML interpreter and device drivers use different regions of memory. During table load, the address information is added to a global address range list. Each node in this list contains an address range as well as a namespace node of the OperationRegion. This list is deleted at ACPI shutdown. Unfortunately, ASL OperationRegions can be declared inside of control methods. Although this is not recommended, modern firmware contains such code. New module level code changes unintentionally removed the functionality of adding and removing nodes to the global address range list. A few months ago, support for adding addresses has been re- implemented. However, the removal of the address range list was missed and resulted in some systems to crash due to the address list containing bogus namespace nodes from OperationRegions declared in control methods. In order to fix the crash, this change removes dynamic OperationRegions after control method termination. Link: https://bugzilla.kernel.org/show_bug.cgi?id=202475 Reported-by: Michael J Gruber <firstname.lastname@example.org> Signed-off-by: Erik Schmauss <email@example.com>
- Loading branch information...
Showing with 5 additions and 0 deletions.