On 02/19/2018 04:48 PM, Simon Glass wrote:
Rather than having the caller check this variable and the callee set it,
move all access to the variable inside the function. This reduces the
logic needed to call efi_init_obj_list().

Fix the spelling of initalized at the same time to fix a patman warning on
this patch.

We should have only one location from wehre we call efi_init_obj_list().

We should be able to distinguish between a successful and a failed initialization. If the initialization has failed we should not allow bootefi to execute.

This patch is duplicate to the
https://lists.denx.de/pipermail/u-boot/2018-February/320487.html
patch series.

Regards

Heinrich


Signed-off-by: Simon Glass <s...@chromium.org>
Reviewed: Heinrich Schuchardt <xypron.g...@gmx.de>
---

Changes in v3:
- Avoid adding a new call to efi_init_obj_list()
- Fix spelling of initalized

Changes in v2: None

  cmd/bootefi.c | 15 +++++++--------
  1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 2106ed9c8c..064c069757 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -22,7 +22,7 @@
DECLARE_GLOBAL_DATA_PTR; -static uint8_t efi_obj_list_initalized;
+static uint8_t efi_obj_list_initialised;
static struct efi_device_path *bootefi_image_path;
  static struct efi_device_path *bootefi_device_path;
@@ -30,7 +30,9 @@ static struct efi_device_path *bootefi_device_path;
  /* Initialize and populate EFI object list */
  static void efi_init_obj_list(void)
  {
-       efi_obj_list_initalized = 1;
+       if (efi_obj_list_initialised)
+               return;
+       efi_obj_list_initialised = 1;
/* Initialize EFI driver uclass */
        efi_driver_init();
@@ -184,8 +186,7 @@ static efi_status_t do_bootefi_exec(void *efi, void *fdt,
        }
/* Initialize and populate EFI object list */
-       if (!efi_obj_list_initalized)
-               efi_init_obj_list();
+       efi_init_obj_list();
efi_setup_loaded_image(&loaded_image_info, &loaded_image_info_obj,
                               device_path, image_path);
@@ -284,8 +285,7 @@ static int do_bootefi_bootmgr_exec(unsigned long fdt_addr)
        efi_status_t r;
/* Initialize and populate EFI object list */
-       if (!efi_obj_list_initalized)
-               efi_init_obj_list();
+       efi_init_obj_list();
/*
         * gd lives in a fixed register which may get clobbered while we execute
@@ -350,8 +350,7 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[])
                 */
                efi_save_gd();
                /* Initialize and populate EFI object list */
-               if (!efi_obj_list_initalized)
-                       efi_init_obj_list();
+               efi_init_obj_list();
                /* Transfer environment variable efi_selftest as load options */
                set_load_options(&loaded_image_info, "efi_selftest");
                /* Execute the test */


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to