efi_loader: avoid multiple local copies of lf2_initrd_guid

Create the GUID as a global variable.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
Heinrich Schuchardt 2021-10-15 02:33:33 +02:00
parent 05345425ca
commit 9ad37fe405
4 changed files with 8 additions and 4 deletions

View File

@ -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);

View File

@ -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;

View File

@ -13,6 +13,11 @@
#include <efi_loader.h>
#include <efi_variable.h>
#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

View File

@ -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;