iPXE - Open Source Boot Firmware

[efi] Blacklist the Dell Ip4ConfigDxe driver
authorMichael Brown <mcb30@ipxe.org>
Tue, 19 Feb 2019 18:47:12 +0000 (18:47 +0000)
committerMichael Brown <mcb30@ipxe.org>
Tue, 19 Feb 2019 19:02:11 +0000 (19:02 +0000)
commit64b4452bca04af433f1c98ab782c0e93cd5c88c0
treeaad8c645e893ac233481e64de6ea8b3a69a817f9
parent36a4c85f911c85f5ab183331ff74d125f9a9ed32
[efi] Blacklist the Dell Ip4ConfigDxe driver

On a Dell OptiPlex 7010, calling DisconnectController() on the LOM
device handle will lock up the system.  Debugging shows that execution
is trapped in an infinite loop that is somehow trying to reconnect
drivers (without going via ConnectController()).

The problem can be reproduced in the UEFI shell with no iPXE code
present, by using the "disconnect" command.  Experimentation shows
that the only fix is to unload (rather than just disconnect) the
"Ip4ConfigDxe" driver.

Add the concept of a blacklist of UEFI drivers that will be
automatically unloaded when iPXE runs as an application, and add the
Dell Ip4ConfigDxe driver to this blacklist.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/ipxe/efi/efi_blacklist.h [new file with mode: 0644]
src/include/ipxe/errfile.h
src/interface/efi/efi_blacklist.c [new file with mode: 0644]
src/interface/efi/efiprefix.c