
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 sjg@chromium.org Reviewed: Heinrich Schuchardt xypron.glpk@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();
/* Transfer environment variable efi_selftest as load options */ set_load_options(&loaded_image_info, "efi_selftest"); /* Execute the test */efi_init_obj_list();