On 11/14/2018 07:50 AM, Simon Glass wrote:
This function can be used from do_bootefi_exec() so that we use mostly the
same code for a normal EFI application and an EFI test.

Rename the function and use it in both places.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v13:
- Drop 'efi_loader: Drop setup_ok' as we have an existing patch for that
- Drop patches previously applied

Changes in v12: None
Changes in v11:
- Drop patches previously applied

Changes in v9: None
Changes in v7:
- Drop patch "efi: Init the 'rows' and 'cols' variables"
- Drop patches previous applied

Changes in v5:
- Rebase to master

Changes in v4:
- Rebase to master

Changes in v3:
- Add new patch to rename bootefi_test_finish() to bootefi_run_finish()

  cmd/bootefi.c | 32 ++++++++++++++++----------------
  1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 492052d827a..317c7feb0a5 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -349,6 +349,20 @@ static efi_status_t bootefi_run_prepare(const char 
*load_options_path,
        return 0;
  }
+/**
+ * bootefi_run_finish() - finish up after running an EFI test
+ *
+ * @image: Pointer to a struct which holds the loaded image info
+ * @obj: Pointer to a struct which holds the loaded image object
+ */
+static void bootefi_run_finish(struct efi_loaded_image *image,
+                              struct efi_loaded_image_obj *obj)
+{
+       efi_restore_gd();
+       free(image->load_options);
+       efi_delete_handle(&obj->header);
+}
+
  /**
   * do_bootefi_exec() - execute EFI binary
   *
@@ -466,8 +480,7 @@ static efi_status_t do_bootefi_exec(void *efi,
exit:
        /* image has returned, loaded-image obj goes *poof*: */
-       if (obj)
-               efi_delete_handle(&obj->header);

What about the conditional dereference? The new bootefi_run_finish() function is dropping that.


Alex

+       bootefi_run_finish(image_prot, obj);
        if (mem_handle)
                efi_delete_handle(mem_handle);
@@ -506,19 +519,6 @@ static efi_status_t bootefi_test_prepare(struct efi_loaded_image **imagep,
                                   bootefi_image_path, imagep, objp);
  }
-/**
- * bootefi_test_finish() - finish up after running an EFI test
- *
- * @image_prot: Pointer to a struct which holds the loaded image info
- * @obj: Pointer to a struct which holds the loaded image object
- */
-static void bootefi_test_finish(struct efi_loaded_image *image_prot,
-                               struct efi_loaded_image_obj *obj)
-{
-       efi_restore_gd();
-       free(image_prot->load_options);
-       efi_delete_handle(&obj->header);
-}
  #endif /* CONFIG_CMD_BOOTEFI_SELFTEST */
static int do_bootefi_bootmgr_exec(void)
@@ -603,7 +603,7 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[])
/* Execute the test */
                r = efi_selftest(&obj->header, &systab);
-               bootefi_test_finish(image_prot, obj);
+               bootefi_run_finish(image_prot, obj);
                return r != EFI_SUCCESS;
        } else
  #endif


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

Reply via email to