[PATCH 1/1] efi_loader: efi_current_var after SetVirtualAddressMap

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Jul 23 16:33:38 CEST 2020


Variable efi_current_var is a pointer to a physical memory address that
becomes invalid after SetVirtualAddressMap(). Instead of converting it via
ConvertPointer() simply set it to NULL.

Fixes: b02a707152dc ("efi_loader: enable UEFI variables at runtime")
Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
 lib/efi_loader/efi_var_mem.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/efi_loader/efi_var_mem.c b/lib/efi_loader/efi_var_mem.c
index 1f13f18c2f..bfa8a56a8f 100644
--- a/lib/efi_loader/efi_var_mem.c
+++ b/lib/efi_loader/efi_var_mem.c
@@ -232,6 +232,7 @@ static void EFIAPI __efi_runtime
 efi_var_mem_notify_virtual_address_map(struct efi_event *event, void *context)
 {
 	efi_convert_pointer(0, (void **)&efi_var_buf);
+	efi_current_var = NULL;
 }

 efi_status_t efi_var_mem_init(void)
--
2.20.1



More information about the U-Boot mailing list