opengnsys_ipxe/src
Michael Brown 9ff6d08bf5 [efi] Avoid infinite loops when asked to stop non-existent devices
Calling EDK2's OpenProtocol() with attributes BY_DRIVER|EXCLUSIVE will
call DisconnectController() in a loop to attempt to dislodge any
existing openers with attributes BY_DRIVER.  The loop will continue
indefinitely until either no such openers remain, or until
DisconnectController() returns an error.

If our driver binding protocol's Stop() method is ever called to
disconnect a device that we are not in fact driving, then return
EFI_DEVICE_ERROR rather than EFI_SUCCESS, in order to break this
potentially infinite loop.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-09-28 03:20:59 +01:00
..
arch [pxe] Notify BIOS via INT 1a,564e for each new network device 2015-09-15 13:43:35 +01:00
bin Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
config [efi] Expose unused USB devices via EFI_USB_IO_PROTOCOL 2015-09-14 22:11:37 +01:00
core [uri] Generalise tftp_uri() to pxe_uri() 2015-09-02 13:38:53 +01:00
crypto [crypto] Support SHA-{224,384,512} in X.509 certificates 2015-08-02 16:54:24 +01:00
doc [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
drivers [vmxnet3] Avoid completely filling the TX descriptor ring 2015-09-16 11:10:30 +01:00
hci [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-05 11:40:13 +00:00
image [efi] Provide efi_devpath_len() 2015-09-13 12:54:31 +01:00
include [efi] Expose unused USB devices via EFI_USB_IO_PROTOCOL 2015-09-14 22:11:37 +01:00
interface [efi] Avoid infinite loops when asked to stop non-existent devices 2015-09-28 03:20:59 +01:00
libgcc [build] Mark __intel_new_proc_init with __libgcc rather than cdecl 2009-08-03 15:56:10 +01:00
net [tcpip] Avoid generating positive zero for transmitted UDP checksums 2015-09-10 14:46:54 +01:00
tests [tcpip] Avoid generating positive zero for transmitted UDP checksums 2015-09-10 14:46:54 +01:00
usr [uri] Generalise tftp_uri() to pxe_uri() 2015-09-02 13:38:53 +01:00
util [efi] Work around broken 32-bit PE executable parsing in ImageHlp.dll 2015-09-25 13:41:32 +01:00
.gitignore [build] Add support for local configuration files 2010-03-26 19:07:22 +00:00
Makefile [crypto] Support SHA-{224,384,512} in X.509 certificates 2015-08-02 16:54:24 +01:00
Makefile.housekeeping [build] Remove dependency on libiberty 2015-09-14 22:55:40 +01:00
doxygen.cfg [build] Remove PACKED macro 2010-05-29 23:49:47 +01:00