diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2020-02-10 17:02:35 +0100 |
---|---|---|
committer | Ard Biesheuvel <ardb@kernel.org> | 2020-02-23 21:57:15 +0100 |
commit | a7495c28c86ab3b31508c5754bc5fb717ab1169c (patch) | |
tree | 3cbd64c9e1231d595d656d95c051fbd65ec56b12 /include/linux/efi.h | |
parent | f57db62c67c1c9d3bf94563d3228ceff456f5be7 (diff) | |
download | linux-stable-a7495c28c86ab3b31508c5754bc5fb717ab1169c.tar.gz linux-stable-a7495c28c86ab3b31508c5754bc5fb717ab1169c.tar.bz2 linux-stable-a7495c28c86ab3b31508c5754bc5fb717ab1169c.zip |
efi/libstub: Simplify efi_high_alloc() and rename to efi_allocate_pages()
The implementation of efi_high_alloc() uses a complicated way of
traversing the memory map to find an available region that is located
as close as possible to the provided upper limit, and calls AllocatePages
subsequently to create the allocation at that exact address.
This is precisely what the EFI_ALLOCATE_MAX_ADDRESS allocation type
argument to AllocatePages() does, and considering that EFI_ALLOC_ALIGN
only exceeds EFI_PAGE_SIZE on arm64, let's use AllocatePages() directly
and implement the alignment using code that the compiler can remove if
it does not exceed EFI_PAGE_SIZE.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'include/linux/efi.h')
-rw-r--r-- | include/linux/efi.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h index 7efd7072cca5..7e231c3cfb6f 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -1508,8 +1508,8 @@ efi_status_t efi_low_alloc(unsigned long size, unsigned long align, return efi_low_alloc_above(size, align, addr, 0x8); } -efi_status_t efi_high_alloc(unsigned long size, unsigned long align, - unsigned long *addr, unsigned long max); +efi_status_t efi_allocate_pages(unsigned long size, unsigned long *addr, + unsigned long max); efi_status_t efi_relocate_kernel(unsigned long *image_addr, unsigned long image_size, |