From 9f8932d0558e52777175a2a6ef70c0ef3f519545 Mon Sep 17 00:00:00 2001
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Wed, 14 Aug 2019 06:49:09 +0200
Subject: [PATCH] efi_loader: do not call efi_runtime_detach twice

Commit 7f95104d91cc ("efi_loader: detach runtime in ExitBootServices()")
added a call to efi_runtime_detach() to ExitBootServices() but did not
remove the call in SetVirtualAddressMap().

Remove the superfluous function call.

Correct a comment referring to efi_runtime_detach().

Fixes: 7f95104d91cc ("efi_loader: detach runtime in ExitBootServices()")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 lib/efi_loader/efi_runtime.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c
index 54e5a98bfc..ced00516f7 100644
--- a/lib/efi_loader/efi_runtime.c
+++ b/lib/efi_loader/efi_runtime.c
@@ -565,7 +565,10 @@ void efi_runtime_relocate(ulong offset, struct efi_mem_desc *map)
 
 		p = (void*)((ulong)rel->offset - base) + gd->relocaddr;
 
-		/* The runtime services are updated in efi_runtime_detach() */
+		/*
+		 * The runtime services table is updated in
+		 * efi_relocate_runtime_table()
+		 */
 		if (map && efi_is_runtime_service_pointer(p))
 			continue;
 
@@ -724,14 +727,6 @@ static efi_status_t EFIAPI efi_set_virtual_address_map(
 		}
 	}
 
-	/*
-	 * Some runtime services are implemented in a way that we can only offer
-	 * them at boottime. Replace those function pointers.
-	 *
-	 * TODO: move this call to ExitBootServices().
-	 */
-	efi_runtime_detach();
-
 	/* Relocate the runtime. See TODO above */
 	for (i = 0; i < n; i++) {
 		struct efi_mem_desc *map;
-- 
2.39.5