From: Heinrich Schuchardt Date: Fri, 15 Oct 2021 00:33:33 +0000 (+0200) Subject: efi_loader: avoid multiple local copies of lf2_initrd_guid X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=9ad37fe405a6fccba3555892ac9e64dbd37b0581;p=u-boot.git efi_loader: avoid multiple local copies of lf2_initrd_guid Create the GUID as a global variable. Signed-off-by: Heinrich Schuchardt Reviewed-by: Ilias Apalodimas --- diff --git a/cmd/efidebug.c b/cmd/efidebug.c index 33a5135ee1..a977ca9c72 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -1144,7 +1144,6 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size) struct efi_device_path *initrd_path = NULL; struct efi_load_option lo; efi_status_t ret; - const efi_guid_t lf2_initrd_guid = EFI_INITRD_MEDIA_GUID; ret = efi_deserialize_load_option(&lo, data, size); if (ret != EFI_SUCCESS) { @@ -1165,7 +1164,7 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size) printf(" file_path: %pD\n", lo.file_path); - initrd_path = efi_dp_from_lo(&lo, &lf2_initrd_guid); + initrd_path = efi_dp_from_lo(&lo, &efi_lf2_initrd_guid); if (initrd_path) { printf(" initrd_path: %pD\n", initrd_path); efi_free_pool(initrd_path); diff --git a/include/efi_load_initrd.h b/include/efi_load_initrd.h index 478ae807c6..be5d5a7acb 100644 --- a/include/efi_load_initrd.h +++ b/include/efi_load_initrd.h @@ -16,6 +16,7 @@ #define EFI_INITRD_MEDIA_GUID \ EFI_GUID(0x5568e427, 0x68fc, 0x4f3d, \ 0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68) +extern const efi_guid_t efi_lf2_initrd_guid; struct efi_initrd_dp { struct efi_device_path_vendor vendor; diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c index 89833de222..485384b7ee 100644 --- a/lib/efi_loader/efi_helper.c +++ b/lib/efi_loader/efi_helper.c @@ -13,6 +13,11 @@ #include #include +#if defined(CONFIG_CMD_EFIDEBUG) || defined(CONFIG_EFI_LOAD_FILE2_INITRD) +/* GUID used by Linux to identify the LoadFile2 protocol with the initrd */ +const efi_guid_t efi_lf2_initrd_guid = EFI_INITRD_MEDIA_GUID; +#endif + /** * efi_create_current_boot_var() - Return Boot#### name were #### is replaced by * the value of BootCurrent diff --git a/lib/efi_loader/efi_load_initrd.c b/lib/efi_loader/efi_load_initrd.c index e2a8063023..c5e6652e66 100644 --- a/lib/efi_loader/efi_load_initrd.c +++ b/lib/efi_loader/efi_load_initrd.c @@ -52,7 +52,6 @@ static efi_handle_t efi_initrd_handle; */ static efi_status_t get_initrd_fp(struct efi_device_path **initrd_fp) { - const efi_guid_t lf2_initrd_guid = EFI_INITRD_MEDIA_GUID; struct efi_device_path *dp = NULL; /* @@ -65,7 +64,7 @@ static efi_status_t get_initrd_fp(struct efi_device_path **initrd_fp) * We can then use this specific return value and not install the * protocol, while allowing the boot to continue */ - dp = efi_get_dp_from_boot(lf2_initrd_guid); + dp = efi_get_dp_from_boot(efi_lf2_initrd_guid); if (!dp) return EFI_INVALID_PARAMETER;