From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Thu, 10 Sep 2020 05:47:58 +0000 (+0200)
Subject: efi_selftest: restore gd before do_reset()
X-Git-Tag: v2025.01-rc5-pxa1908~2214^2
X-Git-Url: http://git.dujemihanovic.xyz/img/html/static/git-logo.png?a=commitdiff_plain;h=5bf12a78599d4a311265c174496233aa15ed4252;p=u-boot.git

efi_selftest: restore gd before do_reset()

Before calling do_reset() in the EFI selftest we must restore the global
data pointer.

Fixes: fa63753f86cc ("efi_selftest: substitute ResetSystem() by do_reset()")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---

diff --git a/lib/efi_selftest/efi_selftest.c b/lib/efi_selftest/efi_selftest.c
index 6eec8ae2a7..165fa265f2 100644
--- a/lib/efi_selftest/efi_selftest.c
+++ b/lib/efi_selftest/efi_selftest.c
@@ -311,11 +311,13 @@ efi_status_t EFIAPI efi_selftest(efi_handle_t image_handle,
 	efi_st_printf("Preparing for reset. Press any key...\n");
 	efi_st_get_key();
 
-	if (IS_ENABLED(CONFIG_EFI_HAVE_RUNTIME_RESET))
+	if (IS_ENABLED(CONFIG_EFI_HAVE_RUNTIME_RESET)) {
 		runtime->reset_system(EFI_RESET_WARM, EFI_NOT_READY,
 				      sizeof(reset_message), reset_message);
-	else
+	} else {
+		efi_restore_gd();
 		do_reset(NULL, 0, 0, NULL);
+	}
 
 	efi_st_printf("\n");
 	efi_st_error("Reset failed\n");