summaryrefslogtreecommitdiffstats
path: root/share/man
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2016-12-19 09:51:17 +0000
committerhselasky <hselasky@FreeBSD.org>2016-12-19 09:51:17 +0000
commit973b122b60a2614b2f2e1c8b99fd38e0547317c7 (patch)
tree1561148058eb23c40bee3127817130d12e0e6914 /share/man
parent481a464763c3a0dfcb25257c2cfb70272562bb29 (diff)
downloadFreeBSD-src-973b122b60a2614b2f2e1c8b99fd38e0547317c7.zip
FreeBSD-src-973b122b60a2614b2f2e1c8b99fd38e0547317c7.tar.gz
MFC r309400:
Fix for endless recursion in the ACPI GPE handler during boot. When handling a GPE ACPI interrupt object the EcSpaceHandler() function can be called which checks the EC_EVENT_SCI bit and then recurse on the EcGpeQueryHandler() function. If there are multiple GPE events pending the EC_EVENT_SCI bit will be set at the next call to EcSpaceHandler() causing it to recurse again via the EcGpeQueryHandler() function. This leads to a slow never ending recursion during boot which prevents proper system startup, because the EC_EVENT_SCI bit never gets cleared in this scenario. The behaviour is reproducible with the ALASKA AMI in combination with a newer Skylake based mainboard in the following way: Enter BIOS and adjust the clock one hour forward. Save and exit the BIOS. System fails to boot due to the above mentioned bug in EcGpeQueryHandler() which was observed recursing multiple times. This patch adds a simple recursion guard to the EcGpeQueryHandler() function and also also adds logic to detect if new GPE events occurred during the execution of EcGpeQueryHandler() and then loop on this function instead of recursing. Reviewed by: jhb
Diffstat (limited to 'share/man')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud