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>tags/v1.20.1
|
|
||
254 |
|
254 |
|
255 |
|
255 |
|
256 |
|
256 |
|
257 |
|
|
|
|
257 |
|
|
258 |
|
258 |
|
259 |
|
259 |
|
260 |
|
260 |
|