diff options
Diffstat (limited to 'commands/flash.c')
-rw-r--r-- | commands/flash.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/commands/flash.c b/commands/flash.c index 8dbfeeb8c4..5876fc7d55 100644 --- a/commands/flash.c +++ b/commands/flash.c @@ -43,6 +43,7 @@ static int do_flerase (cmd_tbl_t *cmdtp, int argc, char *argv[]) char *filename = NULL; struct stat s; unsigned long start = 0, size = ~0; + int ret = 0; if (argc == 1) { u_boot_cmd_usage(cmdtp); @@ -69,20 +70,20 @@ static int do_flerase (cmd_tbl_t *cmdtp, int argc, char *argv[]) return 1; } - if (argc == 3) - if (parse_area_spec(argv[2], &start, &size)) { - printf("could not parse: %s\n", argv[optind]); - return 1; - } + if (argc == 3 && parse_area_spec(argv[2], &start, &size)) { + printf("could not parse: %s\n", argv[optind]); + ret = 1; + goto out; + } - if(erase(fd, size, start)) { + if (erase(fd, size, start)) { perror("erase"); - return 1; + ret = 1; } - +out: close(fd); - return 0; + return ret; } static const __maybe_unused char cmd_erase_help[] = |