From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Wed, 18 Oct 2017 16:13:14 +0000 (+0200)
Subject: efi_selftest: correctly cleanup after selftest
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=c2b53902ca28bc3a90861067af6fffeae6e5ead0;p=project%2Fbcm63xx%2Fu-boot.git

efi_selftest: correctly cleanup after selftest

After executing bootefi selftest
* restore GD
* unlink the load image handle
* return 0 or 1 and not a truncated efi_status_t.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---

diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index b894403ff6..0915192bbb 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -349,8 +349,10 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		set_load_options(&loaded_image_info, "efi_selftest");
 		/* Execute the test */
 		r = efi_selftest(&loaded_image_info, &systab);
+		efi_restore_gd();
 		free(loaded_image_info.load_options);
-		return r;
+		list_del(&loaded_image_info_obj.link);
+		return r != EFI_SUCCESS;
 	} else
 #endif
 	if (!strcmp(argv[1], "bootmgr")) {