On Mon, Apr 13, 2020 at 8:55 AM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > It is no longer necessary to locate the kernel as low as possible in > physical memory, and so we can switch from efi_low_alloc() [which is > a rather nasty concoction on top of GetMemoryMap()] to a new helper > called efi_allocate_pages_aligned(), which simply rounds up the size > to account for the alignment, and frees the misaligned pages again. > > So considering that the kernel can live anywhere in the physical > address space, as long as its alignment requirements are met, let's > switch to efi_allocate_pages_aligned() to allocate the pages. > > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > --- > drivers/firmware/efi/libstub/arm64-stub.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/firmware/efi/libstub/arm64-stub.c b/drivers/firmware/efi/libstub/arm64-stub.c > index 6fc3bd9a56db..99b67e88a33b 100644 > --- a/drivers/firmware/efi/libstub/arm64-stub.c > +++ b/drivers/firmware/efi/libstub/arm64-stub.c > @@ -98,8 +98,8 @@ efi_status_t handle_kernel_image(unsigned long *image_addr, > return EFI_SUCCESS; > } > > - status = efi_low_alloc(*reserve_size, > - min_kimg_align, reserve_addr); > + status = efi_allocate_pages_aligned(*reserve_size, reserve_addr, > + ULONG_MAX, min_kimg_align); > > if (status != EFI_SUCCESS) { > pr_efi_err("Failed to relocate kernel\n"); > -- > 2.17.1 > Reviewed-by: Atish Patra <atish.patra@xxxxxxx> -- Regards, Atish