fs: error handling in do_load()

If a file cannot be loaded, show an error message.
Set the EFI boot device only after successfully loading a file.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Heinrich Schuchardt 2020-06-29 20:08:49 +02:00 committed by Tom Rini
parent 36da57aa87
commit 1244f36900
1 changed files with 7 additions and 5 deletions

12
fs/fs.c
View File

@ -715,15 +715,17 @@ int do_load(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[],
else
pos = 0;
#ifdef CONFIG_CMD_BOOTEFI
efi_set_bootdev(argv[1], (argc > 2) ? argv[2] : "",
(argc > 4) ? argv[4] : "");
#endif
time = get_timer(0);
ret = _fs_read(filename, addr, pos, bytes, 1, &len_read);
time = get_timer(time);
if (ret < 0)
if (ret < 0) {
printf("Failed to load '%s'\n", filename);
return 1;
}
if (IS_ENABLED(CONFIG_CMD_BOOTEFI))
efi_set_bootdev(argv[1], (argc > 2) ? argv[2] : "",
(argc > 4) ? argv[4] : "");
printf("%llu bytes read in %lu ms", len_read, time);
if (time > 0) {