cmd: fix return code of 'sf write' and 'sf read'
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Mon, 2 Jan 2023 17:21:14 +0000 (18:21 +0100)
committerJagan Teki <jagan@amarulasolutions.com>
Thu, 26 Jan 2023 15:34:16 +0000 (21:04 +0530)
If the offset or the size passed to the 'sf write' or 'sf read' command
exceeds the size of the SPI flash displaying the command usage is not
helpful. Return CMD_RET_FAILURE instead of CMD_RET_USAGE.

Use the CMD_RET_* constants instead of 0, 1, -1.

Simplify a logical expression in the final return statement.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
cmd/sf.c

index cf92ac4..272521b 100644 (file)
--- a/cmd/sf.c
+++ b/cmd/sf.c
@@ -281,33 +281,33 @@ static int do_spi_flash_read_write(int argc, char *const argv[])
        loff_t offset, len, maxsize;
 
        if (argc < 3)
-               return -1;
+               return CMD_RET_USAGE;
 
        addr = hextoul(argv[1], &endp);
        if (*argv[1] == 0 || *endp != 0)
-               return -1;
+               return CMD_RET_USAGE;
 
        if (mtd_arg_off_size(argc - 2, &argv[2], &dev, &offset, &len,
                             &maxsize, MTD_DEV_TYPE_NOR, flash->size))
-               return -1;
+               return CMD_RET_FAILURE;
 
        /* Consistency checking */
        if (offset + len > flash->size) {
                printf("ERROR: attempting %s past flash size (%#x)\n",
                       argv[0], flash->size);
-               return 1;
+               return CMD_RET_FAILURE;
        }
 
        if (strncmp(argv[0], "read", 4) != 0 && flash->flash_is_unlocked &&
            !flash->flash_is_unlocked(flash, offset, len)) {
                printf("ERROR: flash area is locked\n");
-               return 1;
+               return CMD_RET_FAILURE;
        }
 
        buf = map_physmem(addr, len, MAP_WRBACK);
        if (!buf && addr) {
                puts("Failed to map physical memory\n");
-               return 1;
+               return CMD_RET_FAILURE;
        }
 
        if (strcmp(argv[0], "update") == 0) {
@@ -332,7 +332,7 @@ static int do_spi_flash_read_write(int argc, char *const argv[])
 
        unmap_physmem(buf, len);
 
-       return ret == 0 ? 0 : 1;
+       return ret ? CMD_RET_FAILURE : CMD_RET_SUCCESS;
 }
 
 static int do_spi_flash_erase(int argc, char *const argv[])