All of lore.kernel.org
 help / color / mirror / Atom feed
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: u-boot@lists.denx.de, trini@konsulko.com, sjg@chromium.org
Subject: Re: [PATCH 5/7] efi_loader: PARTITION_UUIDS should be optional
Date: Thu, 21 Apr 2022 09:57:50 +0900	[thread overview]
Message-ID: <20220421004011.GB7584@laputa> (raw)
In-Reply-To: <e526c8ca-43c6-dc4c-2cd6-24112adfb4ed@gmx.de>

On Wed, Apr 20, 2022 at 09:37:39AM +0200, Heinrich Schuchardt wrote:
> On 4/19/22 03:01, AKASHI Takahiro wrote:
> > In the current implementation, partition table support (either GPT or DOS)
> > is not mandatory. So CONFIG_PARTITION_UUIDS should not be enabled
> > (selected) unconditionally.
> > 
> > Fixes: commit 17f8cda505e3 ("efi_loader: set partition GUID in device path for SIG_TYPE_GUID")
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > ---
> >   lib/efi_loader/Kconfig           |  2 +-
> >   lib/efi_loader/efi_device_path.c | 11 ++++++++++-
> >   2 files changed, 11 insertions(+), 2 deletions(-)
> > 
> > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
> > index d50cd2563d3d..bc518d7a413b 100644
> > --- a/lib/efi_loader/Kconfig
> > +++ b/lib/efi_loader/Kconfig
> > @@ -15,7 +15,7 @@ config EFI_LOADER
> >   	depends on !EFI_APP
> >   	default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8
> >   	select LIB_UUID
> > -	select PARTITION_UUIDS
> > +	imply PARTITION_UUIDS
> >   	select HAVE_BLOCK_DEVICE
> >   	select REGEX
> >   	imply FAT
> > diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
> > index 0542aaae16c7..01fb53ae8c40 100644
> > --- a/lib/efi_loader/efi_device_path.c
> > +++ b/lib/efi_loader/efi_device_path.c
> > @@ -864,11 +864,20 @@ static void *dp_part_node(void *buf, struct blk_desc *desc, int part)
> >   			break;
> >   		case SIG_TYPE_GUID:
> 
> This can only be reached for CONFIG_EFI_PARTITION=y.

I know, but the code won't be exercised anyway if !CONFIG_EFI_PARTITION.

> >   			hddp->signature_type = 2;
> > +#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
> > +			/* info.uuid exists only with PARTITION_UUIDS */
> >   			if (uuid_str_to_bin(info.uuid,
> > -					    hddp->partition_signature, 1))
> > +					    hddp->partition_signature, 1)) {
> 
> uuid_guid_get_bin() does not write any byte if info.uuid is not valid.

What matters here is that "uuid" in struct disk_partition is defined
only if CONFIG_PARTITION_UUIDS.

> >   				log_warning(
> >   					"Partition no. %d: invalid guid: %s\n",
> >   					part, info.uuid);
> 
> > +				memset(hddp->partition_signature, 0,
> > +				       sizeof(hddp->partition_signature));
> 
> dp_alloc() already has zeroed out the memory. Please, remove the
> superfluous code.
> 
> > +			}
> > +#else
> > +			memset(hddp->partition_signature, 0,
> > +			       sizeof(hddp->partition_signature));
> 
> ditto.
> 
> 
> This does not conform to the UEFI specification. Why should we support it?

As I said in my previous comment at patch#6,
CONFIG_EFI_PARTITION can be seen optional under the current implementation.

> 
> Shouldn't we select CONFIG_PARTITION_UUIDS if CONFIG_EFI_LOADER=y and
> CONFIG_EFI_PARTITION=y.

Unfortunately some platforms enable (in other words, "select") PARTITION_UUIDS
unconditionally even without explicitly enabling EFI_LOADER or EFI_PARTITION.

-Takahiro Akashi

> Best regards
> 
> Heinrich
> 
> > +#endif
> >   			break;
> >   		}
> > 
> 

  reply	other threads:[~2022-04-21  0:58 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-19  1:01 [PATCH 0/7] disk: don't compile in partition support for spl/tpl if not really necessary AKASHI Takahiro
2022-04-19  1:01 ` [PATCH 1/7] disk: include errno.h explicitly in part.h AKASHI Takahiro
2022-04-19  1:01 ` [PATCH 2/7] disk: enable function prototypes in part.h for SPL/TPL AKASHI Takahiro
2022-04-19  1:01 ` [PATCH 3/7] disk: define nullified functions for !PARTITIONS AKASHI Takahiro
2022-04-19  3:09   ` Tom Rini
2022-04-19  4:11     ` AKASHI Takahiro
2022-04-19 12:12       ` Tom Rini
2022-04-20  2:17         ` AKASHI Takahiro
2022-04-20  2:50           ` Tom Rini
2022-04-19  1:01 ` [PATCH 4/7] sandbox: move a function prototype AKASHI Takahiro
2022-04-19  1:01 ` [PATCH 5/7] efi_loader: PARTITION_UUIDS should be optional AKASHI Takahiro
2022-04-20  7:37   ` Heinrich Schuchardt
2022-04-21  0:57     ` AKASHI Takahiro [this message]
2022-04-21 13:13       ` Tom Rini
2022-04-19  1:01 ` [PATCH 6/7] efi_loader: disk: compile efi_disk when CONFIG_BLK AKASHI Takahiro
2022-04-20  7:42   ` Heinrich Schuchardt
2022-04-21  0:30     ` AKASHI Takahiro
2022-04-23 20:08       ` Heinrich Schuchardt
2022-04-19  1:01 ` [PATCH 7/7] disk: don't compile in partition support for spl/tpl if not really necessary AKASHI Takahiro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220421004011.GB7584@laputa \
    --to=takahiro.akashi@linaro.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.