[PATCH] efi_loader: file: set a backend block device for file operations

AKASHI Takahiro takahiro.akashi at linaro.org
Fri Feb 28 01:05:49 CET 2020


In the current implementation, set_blk_dev() is called in opening a file,
but not in opening a directory. This will cause failures at succeeding
directory operations as the "current" block device remains nullified.
Adding set_blk_dev() fixes this issue.

Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
---
 lib/efi_loader/efi_file.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/efi_loader/efi_file.c b/lib/efi_loader/efi_file.c
index 140116ddc4ac..ba55b2829e03 100644
--- a/lib/efi_loader/efi_file.c
+++ b/lib/efi_loader/efi_file.c
@@ -235,6 +235,9 @@ static struct efi_file_handle *file_open(struct file_system *fs,
 	} else {
 		fh->isdir = 1;
 		strcpy(fh->path, "");
+
+		if (set_blk_dev(fh))
+			goto error;
 	}
 
 	return &fh->base;
-- 
2.24.0



More information about the U-Boot mailing list