[PATCH 1/1] efi_loader: don't use HandleProtocol

Ilias Apalodimas ilias.apalodimas at linaro.org
Fri Jan 27 07:38:26 CET 2023


On Wed, 25 Jan 2023 at 19:19, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> HandleProtocol() is deprecrated. According to the UEFI specification it
> should be implemented as a call to  OpenProtocolInterface() with a hard
> coded agent handle. This implies that we would have to call
> CloseProtocolInterfaces() after usage with the same handle.
>
> Getting rid of an EFI_CALL() is also appreciated.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
>  lib/efi_loader/efi_boottime.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
> index e65ca6a4cb..ba28989f36 100644
> --- a/lib/efi_loader/efi_boottime.c
> +++ b/lib/efi_loader/efi_boottime.c
> @@ -1949,6 +1949,7 @@ efi_status_t efi_load_image_from_path(bool boot_policy,
>         efi_uintn_t buffer_size;
>         uint64_t addr, pages;
>         const efi_guid_t *guid;
> +       struct efi_handler *handler;
>
>         /* In case of failure nothing is returned */
>         *buffer = NULL;
> @@ -1970,11 +1971,11 @@ efi_status_t efi_load_image_from_path(bool boot_policy,
>         }
>         if (ret != EFI_SUCCESS)
>                 return EFI_NOT_FOUND;
> -       ret = EFI_CALL(efi_handle_protocol(device, guid,
> -                                          (void **)&load_file_protocol));
> +       ret = efi_search_protocol(device, guid, &handler);
>         if (ret != EFI_SUCCESS)
>                 return EFI_NOT_FOUND;
>         buffer_size = 0;
> +       load_file_protocol = handler->protocol_interface;
>         ret = EFI_CALL(load_file_protocol->load_file(
>                                         load_file_protocol, rem, boot_policy,
>                                         &buffer_size, NULL));
> --
> 2.38.1
>

Acked-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>


More information about the U-Boot mailing list