• Ard Biesheuvel's avatar
    efi/libstub: Simplify efi_high_alloc() and rename to efi_allocate_pages() · a7495c28
    Ard Biesheuvel authored
    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: default avatarArd Biesheuvel <ardb@kernel.org>
    a7495c28
mem.c 6.62 KB