efi: app: Call efi_exit() if board_init_r() returns

Move the efi_exit() function further up the file and call it if the
board_init_r() function returns.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-09-22 07:10:52 -06:00
parent 18db472e85
commit b1248a5bc1

View File

@@ -185,6 +185,14 @@ static void find_protocols(struct efi_priv *priv)
boot->locate_protocol(&guid, NULL, (void **)&priv->efi_dp_to_text);
}
static void efi_exit(void)
{
struct efi_priv *priv = efi_get_priv();
printf("U-Boot EFI exiting\n");
priv->boot->exit(priv->parent_image, EFI_SUCCESS, 0, NULL);
}
/**
* efi_main() - Start an EFI image
*
@@ -237,18 +245,11 @@ efi_status_t EFIAPI efi_main(efi_handle_t image,
gd = gd->new_gd;
board_init_r(NULL, 0);
free_memory(priv);
efi_exit();
return EFI_SUCCESS;
}
static void efi_exit(void)
{
struct efi_priv *priv = efi_get_priv();
printf("U-Boot EFI exiting\n");
priv->boot->exit(priv->parent_image, EFI_SUCCESS, 0, NULL);
}
static int efi_sysreset_request(struct udevice *dev, enum sysreset_t type)
{
struct efi_priv *priv = efi_get_priv();