Commit Message
Greg KH
Oct. 24, 2022, 11:27 a.m. UTC
From: Ard Biesheuvel <ardb@kernel.org> commit d80ca810f096ff66f451e7a3ed2f0cd9ef1ff519 upstream. Currently, the non-x86 stub code calls get_memory_map() redundantly, given that the data it returns is never used anywhere. So drop the call. Cc: <stable@vger.kernel.org> # v4.14+ Fixes: 24d7c494ce46 ("efi/arm-stub: Round up FDT allocation to mapping size") Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/firmware/efi/libstub/fdt.c | 8 -------- 1 file changed, 8 deletions(-)
Comments
Hi! > From: Ard Biesheuvel <ardb@kernel.org> > > commit d80ca810f096ff66f451e7a3ed2f0cd9ef1ff519 upstream. > > Currently, the non-x86 stub code calls get_memory_map() redundantly, > given that the data it returns is never used anywhere. So drop the > call. In mainline, map is not used after this point. But in 5.10, map is passed to status = efi_exit_boot_services(handle, &map, &priv, exit_boot_func); few lines below. Can someone verify this reasoning still holds? Thanks and best regards, Pavel > +++ b/drivers/firmware/efi/libstub/fdt.c > @@ -281,14 +281,6 @@ efi_status_t allocate_new_fdt_and_exit_b > goto fail; > } > > - /* > - * Now that we have done our final memory allocation (and free) > - * we can get the memory map key needed for exit_boot_services(). > - */ > - status = efi_get_memory_map(&map); > - if (status != EFI_SUCCESS) > - goto fail_free_new_fdt; > - > status = update_fdt((void *)fdt_addr, fdt_size, > (void *)*new_fdt_addr, MAX_FDT_SIZE, cmdline_ptr, > initrd_addr, initrd_size); >
--- a/drivers/firmware/efi/libstub/fdt.c +++ b/drivers/firmware/efi/libstub/fdt.c @@ -281,14 +281,6 @@ efi_status_t allocate_new_fdt_and_exit_b goto fail; } - /* - * Now that we have done our final memory allocation (and free) - * we can get the memory map key needed for exit_boot_services(). - */ - status = efi_get_memory_map(&map); - if (status != EFI_SUCCESS) - goto fail_free_new_fdt; - status = update_fdt((void *)fdt_addr, fdt_size, (void *)*new_fdt_addr, MAX_FDT_SIZE, cmdline_ptr, initrd_addr, initrd_size);