All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] efi_loader: efi_dp_from_lo() should skip VenMedia node
@ 2021-10-15  1:38 Heinrich Schuchardt
  2021-10-15  7:44 ` Ilias Apalodimas
  0 siblings, 1 reply; 2+ messages in thread
From: Heinrich Schuchardt @ 2021-10-15  1:38 UTC (permalink / raw)
  To: u-boot
  Cc: AKASHI Takahiro, Ilias Apalodimas, Alexander Graf, Heinrich Schuchardt

The 'efidebug boot dump' command should not display the VenMedia() device
path node preceding the device path of the initial ram disk.

By letting efi_dp_from_lo() skip the VenMedia() device path node we can
simplify the coding.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 lib/efi_loader/efi_device_path.c |  2 +-
 lib/efi_loader/efi_helper.c      | 19 +++++--------------
 2 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
index aaf1999d46..7f2aa239de 100644
--- a/lib/efi_loader/efi_device_path.c
+++ b/lib/efi_loader/efi_device_path.c
@@ -1287,7 +1287,7 @@ efi_device_path *efi_dp_from_lo(struct efi_load_option *lo,

 		vendor = (struct efi_device_path_vendor *)fp;
 		if (!guidcmp(&vendor->guid, guid))
-			return efi_dp_dup(fp);
+			return efi_dp_dup(efi_dp_next(fp));
 	}
 	log_debug("VenMedia(%pUl) not found in %ls\n", &guid, lo->label);

diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
index 485384b7ee..b80a6e07df 100644
--- a/lib/efi_loader/efi_helper.c
+++ b/lib/efi_loader/efi_helper.c
@@ -68,10 +68,8 @@ out:
  */
 struct efi_device_path *efi_get_dp_from_boot(const efi_guid_t guid)
 {
-	struct efi_device_path *file_path = NULL;
-	struct efi_device_path *tmp = NULL;
 	struct efi_load_option lo;
-	void *var_value = NULL;
+	void *var_value;
 	efi_uintn_t size;
 	efi_status_t ret;
 	u16 var_name[16];
@@ -86,18 +84,11 @@ struct efi_device_path *efi_get_dp_from_boot(const efi_guid_t guid)

 	ret = efi_deserialize_load_option(&lo, var_value, &size);
 	if (ret != EFI_SUCCESS)
-		goto out;
-
-	tmp = efi_dp_from_lo(&lo, &guid);
-	if (!tmp)
-		goto out;
+		goto err;

-	/* efi_dp_dup will just return NULL if efi_dp_next is NULL */
-	file_path = efi_dp_dup(efi_dp_next(tmp));
+	return efi_dp_from_lo(&lo, &guid);

-out:
-	efi_free_pool(tmp);
+err:
 	free(var_value);
-
-	return file_path;
+	return NULL;
 }
--
2.30.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/1] efi_loader: efi_dp_from_lo() should skip VenMedia node
  2021-10-15  1:38 [PATCH 1/1] efi_loader: efi_dp_from_lo() should skip VenMedia node Heinrich Schuchardt
@ 2021-10-15  7:44 ` Ilias Apalodimas
  0 siblings, 0 replies; 2+ messages in thread
From: Ilias Apalodimas @ 2021-10-15  7:44 UTC (permalink / raw)
  To: Heinrich Schuchardt; +Cc: u-boot, AKASHI Takahiro, Alexander Graf

On Fri, Oct 15, 2021 at 03:38:15AM +0200, Heinrich Schuchardt wrote:
> The 'efidebug boot dump' command should not display the VenMedia() device
> path node preceding the device path of the initial ram disk.
> 
> By letting efi_dp_from_lo() skip the VenMedia() device path node we can
> simplify the coding.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
>  lib/efi_loader/efi_device_path.c |  2 +-
>  lib/efi_loader/efi_helper.c      | 19 +++++--------------
>  2 files changed, 6 insertions(+), 15 deletions(-)
> 
> diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
> index aaf1999d46..7f2aa239de 100644
> --- a/lib/efi_loader/efi_device_path.c
> +++ b/lib/efi_loader/efi_device_path.c
> @@ -1287,7 +1287,7 @@ efi_device_path *efi_dp_from_lo(struct efi_load_option *lo,
> 
>  		vendor = (struct efi_device_path_vendor *)fp;
>  		if (!guidcmp(&vendor->guid, guid))
> -			return efi_dp_dup(fp);
> +			return efi_dp_dup(efi_dp_next(fp));
>  	}
>  	log_debug("VenMedia(%pUl) not found in %ls\n", &guid, lo->label);
> 
> diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
> index 485384b7ee..b80a6e07df 100644
> --- a/lib/efi_loader/efi_helper.c
> +++ b/lib/efi_loader/efi_helper.c
> @@ -68,10 +68,8 @@ out:
>   */
>  struct efi_device_path *efi_get_dp_from_boot(const efi_guid_t guid)
>  {
> -	struct efi_device_path *file_path = NULL;
> -	struct efi_device_path *tmp = NULL;
>  	struct efi_load_option lo;
> -	void *var_value = NULL;
> +	void *var_value;
>  	efi_uintn_t size;
>  	efi_status_t ret;
>  	u16 var_name[16];
> @@ -86,18 +84,11 @@ struct efi_device_path *efi_get_dp_from_boot(const efi_guid_t guid)
> 
>  	ret = efi_deserialize_load_option(&lo, var_value, &size);
>  	if (ret != EFI_SUCCESS)
> -		goto out;
> -
> -	tmp = efi_dp_from_lo(&lo, &guid);
> -	if (!tmp)
> -		goto out;
> +		goto err;
> 
> -	/* efi_dp_dup will just return NULL if efi_dp_next is NULL */
> -	file_path = efi_dp_dup(efi_dp_next(tmp));
> +	return efi_dp_from_lo(&lo, &guid);
> 
> -out:
> -	efi_free_pool(tmp);
> +err:
>  	free(var_value);
> -
> -	return file_path;
> +	return NULL;
>  }
> --
> 2.30.2
> 
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-10-15  7:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-15  1:38 [PATCH 1/1] efi_loader: efi_dp_from_lo() should skip VenMedia node Heinrich Schuchardt
2021-10-15  7:44 ` Ilias Apalodimas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.