Device Path and Loaded Image Device Path are different things.
Print both for maximum utility.

Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de>
---
 commands/efi_handle_dump.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/commands/efi_handle_dump.c b/commands/efi_handle_dump.c
index 1f7b1caa13f9..74d53c9a17c5 100644
--- a/commands/efi_handle_dump.c
+++ b/commands/efi_handle_dump.c
@@ -11,20 +11,23 @@
 #include <efi/efi-mode.h>
 #include <efi/efi-device.h>
 
-static void efi_devpath(struct efi_boot_services *bs, efi_handle_t handle)
+static void efi_devpath(struct efi_boot_services *bs,
+                       efi_handle_t handle,
+                       const efi_guid_t *guid,
+                       const char *desc)
 {
        efi_status_t efiret;
        void *devpath;
        char *dev_path_str;
 
-       efiret = bs->open_protocol(handle, &efi_device_path_protocol_guid,
-                                  &devpath, NULL, NULL, 
EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+       efiret = bs->open_protocol(handle, guid, &devpath, NULL, NULL,
+                                  EFI_OPEN_PROTOCOL_GET_PROTOCOL);
        if (EFI_ERROR(efiret))
                return;
 
        dev_path_str = device_path_to_str(devpath);
        if (dev_path_str) {
-               printf("  Devpath: \n  %s\n", dev_path_str);
+               printf("  %s: \n  %s\n", desc, dev_path_str);
                free(dev_path_str);
        }
 }
@@ -46,7 +49,11 @@ static void efi_dump(struct efi_boot_services *bs, 
efi_handle_t *handles, unsign
                for (j = 0; j < num_guids; j++)
                        printf("  %d: %pUl: %s\n", j, guids[j],
                                        efi_guid_string(guids[j]));
-               efi_devpath(bs, handles[i]);
+
+               efi_devpath(bs, handles[i], &efi_device_path_protocol_guid,
+                           "Devpath");
+               efi_devpath(bs, handles[i], &efi_loaded_image_device_path_guid,
+                           "Image Devpath");
        }
        printf("\n");
 }
-- 
2.39.2


Reply via email to