efi_loader: detach runtime in ExitBootServices()

Linux can be called with a command line parameter efi=novamap, cf.
commit 4e46c2a95621 ("efi/arm/arm64: Allow SetVirtualAddressMap() to be
omitted"). In this case SetVirtualAddressMap() is not called after
ExitBootServices().

OpenBSD 32bit does not call SetVirtualAddressMap() either.

Runtime services must be set to an implementation supported at runtime
in ExitBootServices().

Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Suggested-by: Alexander Graf <agraf@csgraf.de>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2019-07-05 17:42:16 +02:00
parent b23ffcbe02
commit 7f95104d91
3 changed files with 6 additions and 1 deletions

View file

@ -398,7 +398,7 @@ static bool efi_is_runtime_service_pointer(void *p)
/**
* efi_runtime_detach() - detach unimplemented runtime functions
*/
static __efi_runtime void efi_runtime_detach(void)
void efi_runtime_detach(void)
{
efi_runtime_services.reset_system = efi_reset_system;
efi_runtime_services.get_time = efi_get_time;