Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d6cd6ce authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Kees Cook
Browse files

UPSTREAM: arm64/efi: invert UEFI memory region reservation logic



Instead of reserving the memory regions based on which types we know
need to be reserved, consider only regions of the following types as
free for general use by the OS:

EFI_LOADER_CODE
EFI_LOADER_DATA
EFI_BOOT_SERVICES_CODE
EFI_BOOT_SERVICES_DATA
EFI_CONVENTIONAL_MEMORY

Note that this also fixes a problem with the original code, which would
misidentify a EFI_RUNTIME_SERVICES_DATA region as not reserved if it
does not have the EFI_MEMORY_RUNTIME attribute set. However, it is
perfectly legal for the firmware not to request a virtual mapping for
EFI_RUNTIME_SERVICES_DATA regions that contain configuration tables, in
which case the EFI_MEMORY_RUNTIME attribute would not be set.

Acked-by: default avatarRoy Franz <roy.franz@linaro.org>
Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>

(cherry picked from commit 61139eb04056bba69aeef6c481802c4ea028bf4d)
Signed-off-by: default avatarTomasz Figa <tfiga@chromium.org>

Bug: 24475017

Change-Id: I427af832faaf82100c1f3ffb3e1649dd05e6d280
Signed-off-by: default avatarKees Cook <keescook@google.com>
parent 6c44551d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment