public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH] efi: Restrict the simple file system protocol to support only FAT
@ 2021-06-03  2:17 Masami Hiramatsu
  2021-06-03  2:27 ` Masami Hiramatsu
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Masami Hiramatsu @ 2021-06-03  2:17 UTC (permalink / raw)
  To: Heinrich Schuchardt
  Cc: Kazuhiko Sakamoto, Alexander Graf, Masami Hiramatsu,
	Jesper Schmitz Mouridsen, Simon Glass, u-boot

Because UEFI specification v2.9, 13.3 File System Format said "The
file system supported by the Extensible Firmware Interface is based
on the FAT file system.", the simple file system protocol might be
better to support only FAT filesystem.

There must be no problem from UEFI application to access only FAT
because ESP must be formatted by FAT32 and the removable media is
FAT12 or FAT16, according to the UEFI spec.

Reported-by: Kazuhiko Sakamoto <sakamoto.kazuhiko@socionext.com>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
---
 lib/efi_loader/efi_disk.c |   18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
index 307d5d759b..f69ae6587f 100644
--- a/lib/efi_loader/efi_disk.c
+++ b/lib/efi_loader/efi_disk.c
@@ -318,19 +318,25 @@ efi_fs_from_path(struct efi_device_path *full_path)
 }
 
 /**
- * efi_fs_exists() - check if a partition bears a file system
+ * efi_supported_fs_exists() - check if a partition bears a supported file system
  *
  * @desc:	block device descriptor
  * @part:	partition number
- * Return:	1 if a file system exists on the partition
+ * Return:	1 if a supported file system exists on the partition
  *		0 otherwise
  */
-static int efi_fs_exists(struct blk_desc *desc, int part)
+static int efi_supported_fs_exists(struct blk_desc *desc, int part)
 {
 	if (fs_set_blk_dev_with_part(desc, part))
 		return 0;
 
-	if (fs_get_type() == FS_TYPE_ANY)
+	/*
+	 * Because UEFI specification v2.9, 13.3 File System Format said
+	 * "The file system supported by the Extensible Firmware Interface
+	 * is based on the FAT file system.", the simple file system protocol
+	 * should support only FAT filesystem.
+	 */
+	if (fs_get_type() != FS_TYPE_FAT)
 		return 0;
 
 	fs_close();
@@ -428,10 +434,10 @@ static efi_status_t efi_disk_add_dev(
 
 	/*
 	 * On partitions or whole disks without partitions install the
-	 * simple file system protocol if a file system is available.
+	 * simple file system protocol if a supported file system exists.
 	 */
 	if ((part || desc->part_type == PART_TYPE_UNKNOWN) &&
-	    efi_fs_exists(desc, part)) {
+	    efi_supported_fs_exists(desc, part)) {
 		diskobj->volume = efi_simple_file_system(desc, part,
 							 diskobj->dp);
 		ret = efi_add_protocol(&diskobj->header,


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

end of thread, other threads:[~2021-06-03  6:52 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-03  2:17 [PATCH] efi: Restrict the simple file system protocol to support only FAT Masami Hiramatsu
2021-06-03  2:27 ` Masami Hiramatsu
2021-06-03  2:50 ` AKASHI Takahiro
2021-06-03  3:53   ` Masami Hiramatsu
2021-06-03  4:03 ` Heinrich Schuchardt
2021-06-03  4:57   ` Masami Hiramatsu
2021-06-03  5:15     ` Heinrich Schuchardt
2021-06-03  5:39       ` Masami Hiramatsu
2021-06-03  6:14         ` Heinrich Schuchardt
2021-06-03  6:52           ` Masami Hiramatsu
2021-06-03  6:24         ` Ilias Apalodimas
2021-06-03  6:36           ` Masami Hiramatsu
2021-06-03  6:47             ` Ilias Apalodimas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox