diff options
author | Ross Lagerwall <ross.lagerwall@citrix.com> | 2024-01-30 10:52:29 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2024-01-31 13:23:56 +0000 |
commit | 65d69d33da445afc7ff56857af1881cf73666be4 (patch) | |
tree | 5d5eab26731328a76eabac02bb086fa99f7aea6d /src/net/pccrd.c | |
parent | 963ec1c4f379a49cf37d01472a770fff8e47470c (diff) | |
download | ipxe-65d69d33da445afc7ff56857af1881cf73666be4.tar.gz |
[efi] Fix hang during ExitBootServices()
When ExitBootServices() invokes efi_shutdown_hook(), there may be
nothing to generate an interrupt since the timer is disabled in the
first step of ExitBootServices(). Additionally, for VMs OVMF masks
everything from the PIC (except the timer) by default. This means
that calling cpu_nap() may hang indefinitely. This was seen in
practice in netfront_reset() when running in a VM on XenServer.
Fix this by skipping the halt if an EFI shutdown is in progress.
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net/pccrd.c')
0 files changed, 0 insertions, 0 deletions