From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 2/3] efi_loader: disk: install FILE_SYSTEM_PROTOCOL only if available
Date: Thu, 12 Sep 2019 18:17:30 +0900 [thread overview]
Message-ID: <20190912091729.GU4398@linaro.org> (raw)
In-Reply-To: <ffed63b3-2512-fc21-3ffd-8d9ac1bdbf60@gmx.de>
On Thu, Sep 12, 2019 at 10:57:20AM +0200, Heinrich Schuchardt wrote:
> On 9/12/19 6:51 AM, AKASHI Takahiro wrote:
> > In the current implementation, EFI_SIMPLEFILE_SYSTEM_PROTOCOL is always
> > installed to all the partitions even if some of them may house no file
> > system.
> >
> > With this patch, that protocol will be installed only if FAT file system
> > exists.
> >
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > ---
> > lib/efi_loader/efi_disk.c | 16 +++++++++++++++-
> > 1 file changed, 15 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> > index 7a6b06821a47..d72f455901f2 100644
> > --- a/lib/efi_loader/efi_disk.c
> > +++ b/lib/efi_loader/efi_disk.c
> > @@ -9,6 +9,7 @@
> > #include <blk.h>
> > #include <dm.h>
> > #include <efi_loader.h>
> > +#include <fs.h>
> > #include <part.h>
> > #include <malloc.h>
> >
> > @@ -217,6 +218,19 @@ efi_fs_from_path(struct efi_device_path *full_path)
> > return handler->protocol_interface;
> > }
> >
> > +static int efi_fs_exists(struct blk_desc *desc, int part)
> > +{
> > + if (fs_set_blk_dev_with_part(desc, part))
> > + return 0;
> > +
> > + if (strcmp(fs_get_type_name(), "fat"))
>
> Before your patch we could use any supported file system (e.g. EXT2). I
> see no need for a restriction to FAT. You could compare the string to
> "unsupported":
No. As far as you want to stick to compliance to UEFI specification,
"fat" is the only file system supported by UEFI.
> if (!strcmp(fs_get_type_name(), "unsupported"))
> return 0;
>
> But wouldn't it be preferable to have a function to access fs_type (in
> fs/fs.c) directly instead of a string representation?
Agree, but there is no direct function in fs/fs.c.
I'm reluctant to invent a new function just for this purpose.
-Takahiro Akashi
> Otherwise we should convert the string "unsupported" of fstypes[] into a
> constant in fs.h so that we can be sure we are using the same value.
>
> Best regards
>
> Heinrich
>
> > + return 0;
> > +
> > + fs_close();
> > +
> > + return 1;
> > +}
> > +
> > /*
> > * Create a handle for a partition or disk
> > *
> > @@ -270,7 +284,7 @@ static efi_status_t efi_disk_add_dev(
> > diskobj->dp);
> > if (ret != EFI_SUCCESS)
> > return ret;
> > - if (part >= 1) {
> > + if (part >= 1 && efi_fs_exists(desc, part)) {
> > diskobj->volume = efi_simple_file_system(desc, part,
> > diskobj->dp);
> > ret = efi_add_protocol(&diskobj->header,
> >
>
next prev parent reply other threads:[~2019-09-12 9:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-12 4:51 [U-Boot] [PATCH v2 0/3] efi_loader: disk: install FILE_SYSTEM_PROTOCOL to whole disk AKASHI Takahiro
2019-09-12 4:51 ` [U-Boot] [PATCH v2 1/3] fs: export fs_close() AKASHI Takahiro
2019-09-12 4:51 ` [U-Boot] [PATCH v2 2/3] efi_loader: disk: install FILE_SYSTEM_PROTOCOL only if available AKASHI Takahiro
2019-09-12 8:57 ` Heinrich Schuchardt
2019-09-12 9:17 ` AKASHI Takahiro [this message]
2019-09-12 9:43 ` Heinrich Schuchardt
2019-09-12 9:51 ` AKASHI Takahiro
2019-10-03 7:09 ` AKASHI Takahiro
2019-10-03 13:44 ` Heinrich Schuchardt
2019-10-04 0:22 ` AKASHI Takahiro
2019-09-12 4:51 ` [U-Boot] [PATCH v2 3/3] efi_loader: disk: install file system protocol to a whole disk AKASHI Takahiro
2019-09-12 9:21 ` Heinrich Schuchardt
2019-10-03 7:21 ` 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=20190912091729.GU4398@linaro.org \
--to=takahiro.akashi@linaro.org \
--cc=u-boot@lists.denx.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.