mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-28 08:35:38 +00:00
efi_loader: return the correct error in efi_bootmgr_release_uridp()
There's currently a chance for this function to overwrite an error if one occurred and the subsequent call to efi_uninstall_multiple_protocol_interfaces() succedded. Although this is an EFI event and we can't do much let's at least set and return the correct error Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
4a1eeccde6
commit
063b4ed07d
1 changed files with 7 additions and 5 deletions
|
@ -388,6 +388,7 @@ err:
|
||||||
efi_status_t efi_bootmgr_release_uridp(struct uridp_context *ctx)
|
efi_status_t efi_bootmgr_release_uridp(struct uridp_context *ctx)
|
||||||
{
|
{
|
||||||
efi_status_t ret = EFI_SUCCESS;
|
efi_status_t ret = EFI_SUCCESS;
|
||||||
|
efi_status_t ret2 = EFI_SUCCESS;
|
||||||
|
|
||||||
if (!ctx)
|
if (!ctx)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -407,17 +408,18 @@ efi_status_t efi_bootmgr_release_uridp(struct uridp_context *ctx)
|
||||||
|
|
||||||
/* cleanup for PE-COFF image */
|
/* cleanup for PE-COFF image */
|
||||||
if (ctx->mem_handle) {
|
if (ctx->mem_handle) {
|
||||||
ret = efi_uninstall_multiple_protocol_interfaces(
|
ret2 = efi_uninstall_multiple_protocol_interfaces(ctx->mem_handle,
|
||||||
ctx->mem_handle, &efi_guid_device_path, ctx->loaded_dp,
|
&efi_guid_device_path,
|
||||||
NULL);
|
ctx->loaded_dp,
|
||||||
if (ret != EFI_SUCCESS)
|
NULL);
|
||||||
|
if (ret2 != EFI_SUCCESS)
|
||||||
log_err("Uninstall device_path protocol failed\n");
|
log_err("Uninstall device_path protocol failed\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
efi_free_pool(ctx->loaded_dp);
|
efi_free_pool(ctx->loaded_dp);
|
||||||
free(ctx);
|
free(ctx);
|
||||||
|
|
||||||
return ret;
|
return ret == EFI_SUCCESS ? ret2 : ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue