]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
efi_loader: centralize messaging for efi_init_obj_list
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Mon, 20 Apr 2026 22:03:21 +0000 (00:03 +0200)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 1 May 2026 08:30:03 +0000 (10:30 +0200)
If efi_init_obj_list() fails we cannot use the UEFI sub-system.

* Instead of having messages for this everywhere write an error message
  in efi_init_obj_list().
* Always use (ret != EFI_SUCCESS) when checking the return value of
  efi_init_obj_list().
* Remove the return code from the error message as it does not help
  users to understand which initialization went wrong.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
boot/bootmeth_efi_mgr.c
cmd/bootefi.c
cmd/bootmenu.c
cmd/eficonfig.c
cmd/efidebug.c
cmd/nvedit_efi.c
lib/efi_loader/efi_bootbin.c
lib/efi_loader/efi_bootmgr.c
lib/efi_loader/efi_setup.c

index 05fc35d01a978545e56ae2794b60bdaa3fd7d896..6e70c36ad99add1b72d5ec16684045057db55c87 100644 (file)
@@ -58,8 +58,8 @@ static int efi_mgr_read_bootflow(struct udevice *dev, struct bootflow *bflow)
        }
 
        ret = efi_init_obj_list();
-       if (ret)
-               return log_msg_ret("init", ret);
+       if (ret != EFI_SUCCESS)
+               return ret;
 
        /* Enable this method if the "BootOrder" UEFI exists. */
        bootorder = efi_get_var(u"BootOrder", &efi_global_variable_guid,
index 6dab709e5075a629451af809934d46dab186b8db..37165f1a7fd7ae70acb6e1a3b6d2725be7b626c9 100644 (file)
@@ -144,11 +144,8 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
 
        /* Initialize EFI drivers */
        ret = efi_init_obj_list();
-       if (ret != EFI_SUCCESS) {
-               log_err("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                       ret & ~EFI_ERROR_MASK);
+       if (ret != EFI_SUCCESS)
                return CMD_RET_FAILURE;
-       }
 
        if (argc > 2) {
                ulong rd_addr = 0;
index d3108778c6f3dfaf85de320a1bf63d7dc6128dc4..528afd221d050479ffee1ca8cc3ab9d16a7db0a4 100644 (file)
@@ -505,12 +505,8 @@ static void handle_uefi_bootnext(void)
 
        /* Initialize EFI drivers */
        ret = efi_init_obj_list();
-       if (ret != EFI_SUCCESS) {
-               log_err("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                       ret & ~EFI_ERROR_MASK);
-
+       if (ret != EFI_SUCCESS)
                return;
-       }
 
        /* If UEFI BootNext variable is set, boot the BootNext load option */
        size = sizeof(u16);
index 60c39bc3a99b06f64da7fd6b565fb2add3ac7849..4d060e3007cc696411483f1c48c1d4d6925ffb30 100644 (file)
@@ -2466,12 +2466,8 @@ static int do_eficonfig(struct cmd_tbl *cmdtp, int flag, int argc, char *const a
                return CMD_RET_USAGE;
 
        ret = efi_init_obj_list();
-       if (ret != EFI_SUCCESS) {
-               log_err("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                       ret & ~EFI_ERROR_MASK);
-
+       if (ret != EFI_SUCCESS)
                return CMD_RET_FAILURE;
-       }
 
        ret = eficonfig_init();
        if (ret != EFI_SUCCESS)
index 7b733119c824e82de5032ae19ceb0e67887a2468..a6faa36b500a066f61e601b2ce629ccdd5d36917 100644 (file)
@@ -1669,11 +1669,8 @@ static int do_efidebug(struct cmd_tbl *cmdtp, int flag,
 
        /* Initialize UEFI drivers */
        r = efi_init_obj_list();
-       if (r != EFI_SUCCESS) {
-               printf("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                      r & ~EFI_ERROR_MASK);
+       if (r != EFI_SUCCESS)
                return CMD_RET_FAILURE;
-       }
 
        cp = find_cmd_tbl(argv[0], cmd_efidebug_sub,
                          ARRAY_SIZE(cmd_efidebug_sub));
index 351ae47e8702f757fdc64fb953eae80ecceb6e32..3a36f94775b0b8438df4433b377facb6de6dee19 100644 (file)
@@ -213,11 +213,8 @@ int do_env_print_efi(struct cmd_tbl *cmdtp, int flag, int argc,
 
        /* Initialize EFI drivers */
        ret = efi_init_obj_list();
-       if (ret != EFI_SUCCESS) {
-               printf("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                      ret & ~EFI_ERROR_MASK);
+       if (ret != EFI_SUCCESS)
                return CMD_RET_FAILURE;
-       }
 
        for (argc--, argv++; argc > 0 && argv[0][0] == '-'; argc--, argv++) {
                if (!strcmp(argv[0], "-guid")) {
@@ -389,11 +386,8 @@ int do_env_set_efi(struct cmd_tbl *cmdtp, int flag, int argc,
 
        /* Initialize EFI drivers */
        ret = efi_init_obj_list();
-       if (ret != EFI_SUCCESS) {
-               printf("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                      ret & ~EFI_ERROR_MASK);
+       if (ret != EFI_SUCCESS)
                return CMD_RET_FAILURE;
-       }
 
        /*
         * attributes = EFI_VARIABLE_BOOTSERVICE_ACCESS |
index 144266b785fb73174fd8f193e815e9f4402c9179..12db8f517c7c904f0a532f53dabf6a46b2321e34 100644 (file)
@@ -224,11 +224,8 @@ static efi_status_t efi_binary_run_dp(void *image, size_t size, void *fdt,
 
        /* Initialize EFI drivers */
        ret = efi_init_obj_list();
-       if (ret != EFI_SUCCESS) {
-               log_err("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                       ret & ~EFI_ERROR_MASK);
+       if (ret != EFI_SUCCESS)
                return ret;
-       }
 
        ret = efi_install_fdt(fdt);
        if (ret != EFI_SUCCESS)
index 52ccebab19fc284fe605a00b1d6114dd329d7b7b..8c9a9b5eb564ecbd6b4b7ba306147cbc9b2aeb54 100644 (file)
@@ -1310,11 +1310,8 @@ efi_status_t efi_bootmgr_run(void *fdt)
 
        /* Initialize EFI drivers */
        ret = efi_init_obj_list();
-       if (ret != EFI_SUCCESS) {
-               log_err("Error: Cannot initialize UEFI sub-system, r = %lu\n",
-                       ret & ~EFI_ERROR_MASK);
+       if (ret != EFI_SUCCESS)
                return ret;
-       }
 
        ret = efi_bootmgr_load(&handle, &load_options);
        if (ret != EFI_SUCCESS) {
index f06cf49e443526c5bded928917b0d4b1eb984d3b..f302bb62ab9255ab2f9a8f36fc2400d85b138c88 100644 (file)
@@ -392,5 +392,7 @@ efi_status_t efi_init_obj_list(void)
        ret = efi_start_obj_list();
 out:
        efi_obj_list_initialized = ret;
+       if (ret != EFI_SUCCESS)
+               log_err("Cannot initialize UEFI sub-system\n");
        return ret;
 }