On Thu, Oct 29, 2020 at 6:49 AM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > Now that ARM started following the example of arm64 and RISC-V, and > no longer imposes any restrictions on the placement of the FDT in > memory at boot, we no longer need per-arch implementations of > efi_get_max_fdt_addr() to factor out the differences. So get rid of > it. > > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > --- > arch/arm/include/asm/efi.h | 6 ------ > arch/arm64/include/asm/efi.h | 6 ------ > arch/riscv/include/asm/efi.h | 6 ------ > drivers/firmware/efi/libstub/efi-stub.c | 1 - > drivers/firmware/efi/libstub/efistub.h | 1 - > drivers/firmware/efi/libstub/fdt.c | 3 +-- > 6 files changed, 1 insertion(+), 22 deletions(-) > > diff --git a/arch/arm/include/asm/efi.h b/arch/arm/include/asm/efi.h > index 3ee4f4381985..0496bc96a092 100644 > --- a/arch/arm/include/asm/efi.h > +++ b/arch/arm/include/asm/efi.h > @@ -74,12 +74,6 @@ static inline void efifb_setup_from_dmi(struct screen_info *si, const char *opt) > */ > #define EFI_PHYS_ALIGN SZ_16M > > -/* on ARM, the FDT should be located in a lowmem region */ > -static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr) > -{ > - return round_down(image_addr, EFI_PHYS_ALIGN) + SZ_512M; > -} > - > /* on ARM, the initrd should be loaded in a lowmem region */ > static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr) > { > diff --git a/arch/arm64/include/asm/efi.h b/arch/arm64/include/asm/efi.h > index 973b14415271..01446a073b2e 100644 > --- a/arch/arm64/include/asm/efi.h > +++ b/arch/arm64/include/asm/efi.h > @@ -64,12 +64,6 @@ efi_status_t __efi_rt_asm_wrapper(void *, const char *, ...); > #define EFI_KIMG_ALIGN \ > (SEGMENT_ALIGN > THREAD_ALIGN ? SEGMENT_ALIGN : THREAD_ALIGN) > > -/* on arm64, the FDT may be located anywhere in system RAM */ > -static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr) > -{ > - return ULONG_MAX; > -} > - > /* > * On arm64, we have to ensure that the initrd ends up in the linear region, > * which is a 1 GB aligned region of size '1UL << (VA_BITS_MIN - 1)' that is > diff --git a/arch/riscv/include/asm/efi.h b/arch/riscv/include/asm/efi.h > index 7542282f1141..6d98cd999680 100644 > --- a/arch/riscv/include/asm/efi.h > +++ b/arch/riscv/include/asm/efi.h > @@ -27,12 +27,6 @@ int efi_set_mapping_permissions(struct mm_struct *mm, efi_memory_desc_t *md); > > #define ARCH_EFI_IRQ_FLAGS_MASK (SR_IE | SR_SPIE) > > -/* on RISC-V, the FDT may be located anywhere in system RAM */ > -static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr) > -{ > - return ULONG_MAX; > -} > - > /* Load initrd at enough distance from DRAM start */ > static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr) > { > diff --git a/drivers/firmware/efi/libstub/efi-stub.c b/drivers/firmware/efi/libstub/efi-stub.c > index 914a343c7785..ec2f3985bef3 100644 > --- a/drivers/firmware/efi/libstub/efi-stub.c > +++ b/drivers/firmware/efi/libstub/efi-stub.c > @@ -273,7 +273,6 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle, > install_memreserve_table(); > > status = allocate_new_fdt_and_exit_boot(handle, &fdt_addr, > - efi_get_max_fdt_addr(image_addr), > initrd_addr, initrd_size, > cmdline_ptr, fdt_addr, fdt_size); > if (status != EFI_SUCCESS) > diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h > index 2d7abcd99de9..c1c63e847481 100644 > --- a/drivers/firmware/efi/libstub/efistub.h > +++ b/drivers/firmware/efi/libstub/efistub.h > @@ -750,7 +750,6 @@ efi_status_t efi_exit_boot_services(void *handle, > > efi_status_t allocate_new_fdt_and_exit_boot(void *handle, > unsigned long *new_fdt_addr, > - unsigned long max_addr, > u64 initrd_addr, u64 initrd_size, > char *cmdline_ptr, > unsigned long fdt_addr, > diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c > index 368cd60000ee..365c3a43a198 100644 > --- a/drivers/firmware/efi/libstub/fdt.c > +++ b/drivers/firmware/efi/libstub/fdt.c > @@ -238,7 +238,6 @@ static efi_status_t exit_boot_func(struct efi_boot_memmap *map, > > efi_status_t allocate_new_fdt_and_exit_boot(void *handle, > unsigned long *new_fdt_addr, > - unsigned long max_addr, > u64 initrd_addr, u64 initrd_size, > char *cmdline_ptr, > unsigned long fdt_addr, > @@ -275,7 +274,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, > efi_info("Exiting boot services and installing virtual address map...\n"); > > map.map = &memory_map; > - status = efi_allocate_pages(MAX_FDT_SIZE, new_fdt_addr, max_addr); > + status = efi_allocate_pages(MAX_FDT_SIZE, new_fdt_addr, ULONG_MAX); > if (status != EFI_SUCCESS) { > efi_err("Unable to allocate memory for new device tree.\n"); > goto fail; > -- > 2.17.1 > Reviewed-by: Atish Patra <atish.patra@xxxxxxx> -- Regards, Atish