diff options
| author | Michael Brown | 2014-07-31 13:28:26 +0200 |
|---|---|---|
| committer | Michael Brown | 2014-07-31 13:50:14 +0200 |
| commit | 16d99cc8ef3b816072e78c2d640e193d0359163f (patch) | |
| tree | d67c4ea6b805344e877259d15bb922f5d3c2ff85 /src | |
| parent | [efi] Avoid unnecessarily passing pointers to EFI_HANDLEs (diff) | |
| download | ipxe-16d99cc8ef3b816072e78c2d640e193d0359163f.tar.gz ipxe-16d99cc8ef3b816072e78c2d640e193d0359163f.tar.xz ipxe-16d99cc8ef3b816072e78c2d640e193d0359163f.zip | |
[efi] Dump existing openers when we are unable to open a protocol
Dump the existing openers of a protocol whenever we are unable to open
a protocol using attributes of BY_DEVICE, EXCLUSIVE, or
BY_CHILD_CONTROLLER.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/drivers/net/efi/snpnet.c | 2 | ||||
| -rw-r--r-- | src/interface/efi/efi_driver.c | 4 | ||||
| -rw-r--r-- | src/interface/efi/efi_file.c | 1 | ||||
| -rw-r--r-- | src/interface/efi/efi_pci.c | 1 |
4 files changed, 8 insertions, 0 deletions
diff --git a/src/drivers/net/efi/snpnet.c b/src/drivers/net/efi/snpnet.c index acba3ed36..766eb42d2 100644 --- a/src/drivers/net/efi/snpnet.c +++ b/src/drivers/net/efi/snpnet.c @@ -407,6 +407,8 @@ int snpnet_start ( struct efi_device *efidev ) { rc = -EEFI ( efirc ); DBGC ( device, "SNP %p %s cannot open SNP protocol: %s\n", device, efi_handle_name ( device ), strerror ( rc ) ); + DBGC_EFI_OPENERS ( device, device, + &efi_simple_network_protocol_guid ); goto err_open_protocol; } diff --git a/src/interface/efi/efi_driver.c b/src/interface/efi/efi_driver.c index c67d6d650..715ec38b6 100644 --- a/src/interface/efi/efi_driver.c +++ b/src/interface/efi/efi_driver.c @@ -137,6 +137,8 @@ int efidev_child_add ( struct efi_device *efidev, EFI_HANDLE device ) { efidev->device, efi_handle_name ( efidev->device ) ); DBGC ( efidev->device, " %p %s: %s\n", device, efi_handle_name ( device ), strerror ( rc ) ); + DBGC_EFI_OPENERS ( efidev->device, efidev->device, + &efi_device_path_protocol_guid ); return rc; } @@ -264,6 +266,8 @@ efi_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver __unused, DBGC ( device, "EFIDRV %p %s could not open device path: %s\n", device, efi_handle_name ( device ), strerror ( rc ) ); + DBGC_EFI_OPENERS ( device, device, + &efi_device_path_protocol_guid ); goto err_no_device_path; } efidev->path = devpath.devpath; diff --git a/src/interface/efi/efi_file.c b/src/interface/efi/efi_file.c index aafc781af..06049fc95 100644 --- a/src/interface/efi/efi_file.c +++ b/src/interface/efi/efi_file.c @@ -631,6 +631,7 @@ int efi_file_install ( EFI_HANDLE handle ) { rc = -EEFI ( efirc ); DBGC ( handle, "Could not open disk I/O protocol: %s\n", strerror ( rc ) ); + DBGC_EFI_OPENERS ( handle, handle, &efi_disk_io_protocol_guid ); goto err_open; } assert ( diskio.diskio == &efi_disk_io_protocol ); diff --git a/src/interface/efi/efi_pci.c b/src/interface/efi/efi_pci.c index 1cd4e63b2..785ed8911 100644 --- a/src/interface/efi/efi_pci.c +++ b/src/interface/efi/efi_pci.c @@ -292,6 +292,7 @@ static int efipci_start ( struct efi_device *efidev ) { pci ) ) != 0 ) { DBGC ( device, "EFIPCI %p %s could not open PCI device: %s\n", device, efi_handle_name ( device ), strerror ( rc ) ); + DBGC_EFI_OPENERS ( device, device, &efi_pci_io_protocol_guid ); goto err_open; } |
