[5.10,080/390] efi: libstub: drop pointless get_memory_map() call

Message ID 20221024113026.018659861@linuxfoundation.org
State New
Headers
Series None |

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

Pavel Machek Oct. 24, 2022, 5:35 p.m. UTC | #1
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);
>
  

Patch

--- 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);