]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[efi] Veto the Dhcp6Dxe driver on all platforms 1194/head
authorMichael Brown <mcb30@ipxe.org>
Tue, 16 Apr 2024 13:19:01 +0000 (14:19 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 16 Apr 2024 13:19:01 +0000 (14:19 +0100)
commitcb95b5b378b1a61d10770965d82dba535b6be242
treeec6c8a0f37a8771e9100cd8b41ce9b0fd80a4a13
parent40b51124400df9cb0c57512ff93ac21827d5bac0
[efi] Veto the Dhcp6Dxe driver on all platforms

The reference implementation of Dhcp6Dxe in EDK2 has a fatal flaw: the
code in EfiDhcp6Stop() will poll the network in a tight loop until
either a response is received or a timer tick (at TPL_CALLBACK)
occurs.  When EfiDhcp6Stop() is called at TPL_CALLBACK or higher, this
will result in an endless loop and an apparently frozen system.

Since this is the reference implementation of Dhcp6Dxe, it is likely
that almost all platforms have the same problem.

Fix by vetoing the broken driver.  If the upstream driver is ever
fixed and a new version number issued, then we could plausibly test
against the version number exposed via the driver binding protocol.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/interface/efi/efi_veto.c