On Wed, 25 Jan 2023 at 19:19, Heinrich Schuchardt
<heinrich.schucha...@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.schucha...@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.apalodi...@linaro.org>

Reply via email to