
While discussing something compeltely different, Ard pointed out that it might be legal to omit calling SetVirtualAddressMap altogether.
While that sounds great, we currently rely on that call to remove all function pointers to code that we do not support outside of boot services.
So let's patch out those bits already on the call to ExitBootServices, so that we can successfully run even when an OS chooses to omit any call to SetVirtualAddressMap.
---
v1 -> v2:
- Add missing icache invalidation - New patch: x86: Add efi runtime reset
v2 -> v3:
- Add link to upstream Linux patch - support EFI_RESET_PLATFORM_SPECIFIC - reuse existing x86_sysreset_request() function
Alexander Graf (2): x86: Add efi runtime reset efi_loader: Patch non-runtime code out at ExitBootServices already
drivers/sysreset/sysreset_x86.c | 23 ++++++++++++++++++++++- include/efi_loader.h | 2 ++ lib/efi_loader/efi_boottime.c | 1 + lib/efi_loader/efi_runtime.c | 29 ++++++++++++++++++++--------- 4 files changed, 45 insertions(+), 10 deletions(-)