From 9f8932d0558e52777175a2a6ef70c0ef3f519545 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt 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 --- 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 54e5a98..ced0051 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.7.4