summaryrefslogtreecommitdiffstats
path: root/src/interface/efi/efi_driver.c
diff options
context:
space:
mode:
authorCurtis Larsen2014-08-05 17:45:01 +0200
committerMichael Brown2014-08-05 17:45:51 +0200
commit27e9ee147aa9918e23a1f9a0940e37f9481057ae (patch)
treef610c0a81158d937e2a741309bc2436c65c3db39 /src/interface/efi/efi_driver.c
parent[efi] Print raw device path when we have no DevicePathToTextProtocol (diff)
downloadipxe-27e9ee147aa9918e23a1f9a0940e37f9481057ae.tar.gz
ipxe-27e9ee147aa9918e23a1f9a0940e37f9481057ae.tar.xz
ipxe-27e9ee147aa9918e23a1f9a0940e37f9481057ae.zip
[efi] Report errors from attempting to disconnect existing drivers
Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi/efi_driver.c')
-rw-r--r--src/interface/efi/efi_driver.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/interface/efi/efi_driver.c b/src/interface/efi/efi_driver.c
index 1f9c7491..b9617cbf 100644
--- a/src/interface/efi/efi_driver.c
+++ b/src/interface/efi/efi_driver.c
@@ -495,7 +495,14 @@ static int efi_driver_connect ( EFI_HANDLE device ) {
DBGC2_EFI_PROTOCOLS ( device, device );
DBGC ( device, "EFIDRV %p %s disconnecting existing drivers\n",
device, efi_handle_name ( device ) );
- bs->DisconnectController ( device, NULL, NULL );
+ if ( ( efirc = bs->DisconnectController ( device, NULL,
+ NULL ) ) != 0 ) {
+ rc = -EEFI ( efirc );
+ DBGC ( device, "EFIDRV %p %s could not disconnect existing "
+ "drivers: %s\n", device, efi_handle_name ( device ),
+ strerror ( rc ) );
+ /* Ignore the error and attempt to connect our drivers */
+ }
DBGC2 ( device, "EFIDRV %p %s after disconnecting:\n",
device, efi_handle_name ( device ) );
DBGC2_EFI_PROTOCOLS ( device, device );