From: Heinrich Schuchardt Date: Tue, 24 Jan 2023 19:36:45 +0000 (+0100) Subject: efi_loader: don't use HandleProtocol X-Git-Tag: baikal/mips/sdk5.8.2~5^2~72^2 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=7d32eae256f3773f1ba92f9b764f448f48140ebe;p=uboot.git efi_loader: don't use HandleProtocol 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 Acked-by: Ilias Apalodimas --- 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));