mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 13:43:28 +00:00
cmd: sf/nand: Print and return failure when 0 length is passed
For sf commands, when '0' length is passed for erase, update, write or read, there might be undesired results. Ideally '0' length means nothing to do. So print 'ERROR: Invalid size 0' and return cmd failure when length '0' is passed to sf commands. Same thing applies for nand commands also. Example: ZynqMP> sf erase 0 0 ERROR: Invalid size 0 ZynqMP> sf write 10000 0 0 ERROR: Invalid size 0 ZynqMP> sf read 10000 0 0 ERROR: Invalid size 0 ZynqMP> sf update 1000 10000 0 ERROR: Invalid size 0 ZynqMP> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Link: https://lore.kernel.org/r/20230516115236.22458-1-ashok.reddy.soma@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com>
This commit is contained in:
parent
b4501aa028
commit
f5aa35c932
2 changed files with 10 additions and 0 deletions
|
@ -88,6 +88,11 @@ int mtd_arg_off_size(int argc, char *const argv[], int *idx, loff_t *off,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (*size == 0) {
|
||||||
|
debug("ERROR: Invalid size 0\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
print:
|
print:
|
||||||
printf("device %d ", *idx);
|
printf("device %d ", *idx);
|
||||||
if (*size == chipsize)
|
if (*size == chipsize)
|
||||||
|
|
5
cmd/sf.c
5
cmd/sf.c
|
@ -353,6 +353,11 @@ static int do_spi_flash_erase(int argc, char *const argv[])
|
||||||
if (ret != 1)
|
if (ret != 1)
|
||||||
return CMD_RET_USAGE;
|
return CMD_RET_USAGE;
|
||||||
|
|
||||||
|
if (size == 0) {
|
||||||
|
debug("ERROR: Invalid size 0\n");
|
||||||
|
return CMD_RET_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Consistency checking */
|
/* Consistency checking */
|
||||||
if (offset + size > flash->size) {
|
if (offset + size > flash->size) {
|
||||||
printf("ERROR: attempting %s past flash size (%#x)\n",
|
printf("ERROR: attempting %s past flash size (%#x)\n",
|
||||||
|
|
Loading…
Reference in a new issue