diff options
author | Tom Rini <trini@konsulko.com> | 2021-04-05 11:29:57 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-04-05 11:29:57 -0400 |
commit | 90eba245a66aa20589404ba537215faf2012c1a3 (patch) | |
tree | c581cd1f00dd162aeac4262bb4e74c2a9fea98c9 /lib/efi_loader/efi_bootmgr.c | |
parent | b46dd116ce03e235f2a7d4843c6278e1da44b5e1 (diff) | |
parent | db8b46120aed6554d1ff405260ea6d2cc2439fcc (diff) |
Merge branch 'next'
Diffstat (limited to 'lib/efi_loader/efi_bootmgr.c')
-rw-r--r-- | lib/efi_loader/efi_bootmgr.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/lib/efi_loader/efi_bootmgr.c b/lib/efi_loader/efi_bootmgr.c index 25f5cebfdb6..46c8011344b 100644 --- a/lib/efi_loader/efi_bootmgr.c +++ b/lib/efi_loader/efi_bootmgr.c @@ -118,11 +118,13 @@ static efi_status_t try_load_entry(u16 n, efi_handle_t *handle, ret = efi_set_variable_int(L"BootCurrent", &efi_global_variable_guid, attributes, sizeof(n), &n, false); - if (ret != EFI_SUCCESS) { - if (EFI_CALL(efi_unload_image(*handle)) - != EFI_SUCCESS) - log_err("Unloading image failed\n"); - goto error; + if (ret != EFI_SUCCESS) + goto unload; + /* try to register load file2 for initrd's */ + if (IS_ENABLED(CONFIG_EFI_LOAD_FILE2_INITRD)) { + ret = efi_initrd_register(); + if (ret != EFI_SUCCESS) + goto unload; } log_info("Booting: %ls\n", lo.label); @@ -147,6 +149,13 @@ error: free(load_option); return ret; + +unload: + if (EFI_CALL(efi_unload_image(*handle)) != EFI_SUCCESS) + log_err("Unloading image failed\n"); + free(load_option); + + return ret; } /** |