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