EFI_CALL() invokes __efi_entry_check() which executes set_gd(efi_gd).
There is no need to execute set_gd(efi_gd) again via efi_restore_gd().

Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>
---
 cmd/bootefi.c               | 1 -
 cmd/efidebug.c              | 2 --
 lib/efi_loader/efi_helper.c | 2 --
 3 files changed, 5 deletions(-)

diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 578dbb19a7e..c1454ffb948 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -107,7 +107,6 @@ static int do_efi_selftest(void)
 
        /* Execute the test */
        ret = EFI_CALL(efi_selftest(&image_obj->header, &systab));
-       efi_restore_gd();
        free(loaded_image_info->load_options);
        efi_free_pool(test_device_path);
        efi_free_pool(test_image_path);
diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index 32c64711b6c..30def6b6831 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -1466,8 +1466,6 @@ static __maybe_unused int do_efi_test_bootmgr(struct 
cmd_tbl *cmdtp, int flag,
        if (ret && exit_data)
                efi_free_pool(exit_data);
 
-       efi_restore_gd();
-
        free(load_options);
        return CMD_RET_SUCCESS;
 }
diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
index c5d13c0f19c..73d0279e843 100644
--- a/lib/efi_loader/efi_helper.c
+++ b/lib/efi_loader/efi_helper.c
@@ -544,8 +544,6 @@ efi_status_t do_bootefi_exec(efi_handle_t handle, void 
*load_options)
                }
        }
 
-       efi_restore_gd();
-
 out:
        free(load_options);
 
-- 
2.43.0

Reply via email to