9ff6d08bf5
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> |
||
---|---|---|
.. | ||
efi_autoboot.c | ||
efi_bofm.c | ||
efi_console.c | ||
efi_debug.c | ||
efi_download.c | ||
efi_driver.c | ||
efi_file.c | ||
efi_guid.c | ||
efi_hii.c | ||
efi_init.c | ||
efi_pci.c | ||
efi_pxe.c | ||
efi_reboot.c | ||
efi_smbios.c | ||
efi_snp_hii.c | ||
efi_snp.c | ||
efi_strings.c | ||
efi_time.c | ||
efi_timer.c | ||
efi_uaccess.c | ||
efi_umalloc.c | ||
efi_usb.c | ||
efi_utils.c | ||
efi_watchdog.c | ||
efi_wrap.c |