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:
parent
36da57aa87
commit
1244f36900
12
fs/fs.c
12
fs/fs.c
@ -715,15 +715,17 @@ int do_load(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[],
|
|||||||
else
|
else
|
||||||
pos = 0;
|
pos = 0;
|
||||||
|
|
||||||
#ifdef CONFIG_CMD_BOOTEFI
|
|
||||||
efi_set_bootdev(argv[1], (argc > 2) ? argv[2] : "",
|
|
||||||
(argc > 4) ? argv[4] : "");
|
|
||||||
#endif
|
|
||||||
time = get_timer(0);
|
time = get_timer(0);
|
||||||
ret = _fs_read(filename, addr, pos, bytes, 1, &len_read);
|
ret = _fs_read(filename, addr, pos, bytes, 1, &len_read);
|
||||||
time = get_timer(time);
|
time = get_timer(time);
|
||||||
if (ret < 0)
|
if (ret < 0) {
|
||||||
|
printf("Failed to load '%s'\n", filename);
|
||||||
return 1;
|
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);
|
printf("%llu bytes read in %lu ms", len_read, time);
|
||||||
if (time > 0) {
|
if (time > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user