
We need ConvertPointer() to adjust pointers when implementing runtime services within U-Boot.
After ExitBootServices() gd is not available anymore. So we should not use EFI_ENTRY() and EFI_EXIT().
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de --- include/efi_loader.h | 3 +++ lib/efi_loader/efi_runtime.c | 8 +++----- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/include/efi_loader.h b/include/efi_loader.h index 510f39fe9e..d17a3c5ae1 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -374,6 +374,9 @@ efi_status_t efi_root_node_register(void); efi_status_t efi_initialize_system_table(void); /* efi_runtime_detach() - detach unimplemented runtime functions */ void efi_runtime_detach(void); +/* efi_convert_pointer() - convert pointer to virtual address */ +efi_status_t EFIAPI efi_convert_pointer(efi_uintn_t debug_disposition, + void **address); /* Called by bootefi to make console interface available */ efi_status_t efi_console_register(void); /* Called by bootefi to make all disk storage accessible as EFI objects */ diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c index 6a25acbbcd..67fa693e41 100644 --- a/lib/efi_loader/efi_runtime.c +++ b/lib/efi_loader/efi_runtime.c @@ -495,15 +495,13 @@ static __efi_runtime efi_status_t EFIAPI efi_convert_pointer_runtime( * @address: pointer to be converted * Return: status code */ -static __efi_runtime efi_status_t EFIAPI efi_convert_pointer( - efi_uintn_t debug_disposition, void **address) +__efi_runtime efi_status_t EFIAPI +efi_convert_pointer(efi_uintn_t debug_disposition, void **address) { efi_physical_addr_t addr = (uintptr_t)*address; efi_uintn_t i; efi_status_t ret = EFI_NOT_FOUND;
- EFI_ENTRY("%zu %p", debug_disposition, address); - if (!efi_virtmap) { ret = EFI_UNSUPPORTED; goto out; @@ -531,7 +529,7 @@ static __efi_runtime efi_status_t EFIAPI efi_convert_pointer( }
out: - return EFI_EXIT(ret); + return ret; }
static __efi_runtime void efi_relocate_runtime_table(ulong offset) -- 2.25.1