[PATCH v3] 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 ---
Changes in v3: - Change printf to debug as it is too verbose
Changes in v2: - Changed print from 'size is 0' to Invalid size 0 without quites. - Modified description to be imperative - Fixed typo in description from "samething" to "same thing"
cmd/legacy-mtd-utils.c | 5 +++++ cmd/sf.c | 5 +++++ 2 files changed, 10 insertions(+)
diff --git a/cmd/legacy-mtd-utils.c b/cmd/legacy-mtd-utils.c index ac7139f84d..5903a90fe5 100644 --- a/cmd/legacy-mtd-utils.c +++ b/cmd/legacy-mtd-utils.c @@ -88,6 +88,11 @@ int mtd_arg_off_size(int argc, char *const argv[], int *idx, loff_t *off, return -1; }
+ if (*size == 0) { + debug("ERROR: Invalid size 0\n"); + return -1; + } + print: printf("device %d ", *idx); if (*size == chipsize) diff --git a/cmd/sf.c b/cmd/sf.c index 11b9c25896..55bef2f769 100644 --- a/cmd/sf.c +++ b/cmd/sf.c @@ -353,6 +353,11 @@ static int do_spi_flash_erase(int argc, char *const argv[]) if (ret != 1) return CMD_RET_USAGE;
+ if (size == 0) { + debug("ERROR: Invalid size 0\n"); + return CMD_RET_FAILURE; + } + /* Consistency checking */ if (offset + size > flash->size) { printf("ERROR: attempting %s past flash size (%#x)\n",

On 5/16/23 13:52, Ashok Reddy Soma wrote:
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
Applied it to my queue. If someone else wants to take please let me know and I will drop it from my queue.
Thanks, Michal

On 5/30/23 14:23, Michal Simek wrote:
On 5/16/23 13:52, Ashok Reddy Soma wrote:
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
Applied it to my queue. If someone else wants to take please let me know and I will drop it from my queue.
I believe Jagan should be picking SF patches ?

On Tue, May 30, 2023 at 7:07 PM Marek Vasut marex@denx.de wrote:
On 5/30/23 14:23, Michal Simek wrote:
On 5/16/23 13:52, Ashok Reddy Soma wrote:
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
Applied it to my queue. If someone else wants to take please let me know and I will drop it from my queue.
I believe Jagan should be picking SF patches ?
Sorry, I missed this during a couple of travels last week.
Jagan.

On 6/2/23 08:28, Jagan Teki wrote:
On Tue, May 30, 2023 at 7:07 PM Marek Vasut marex@denx.de wrote:
On 5/30/23 14:23, Michal Simek wrote:
On 5/16/23 13:52, Ashok Reddy Soma wrote:
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
Applied it to my queue. If someone else wants to take please let me know and I will drop it from my queue.
I believe Jagan should be picking SF patches ?
Sorry, I missed this during a couple of travels last week.
Time to prepare a late MR against u-boot/next then ? I think there are also a few other patches pending .

On Fri, Jun 2, 2023 at 12:03 PM Marek Vasut marex@denx.de wrote:
On 6/2/23 08:28, Jagan Teki wrote:
On Tue, May 30, 2023 at 7:07 PM Marek Vasut marex@denx.de wrote:
On 5/30/23 14:23, Michal Simek wrote:
On 5/16/23 13:52, Ashok Reddy Soma wrote:
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
Applied it to my queue. If someone else wants to take please let me know and I will drop it from my queue.
I believe Jagan should be picking SF patches ?
Sorry, I missed this during a couple of travels last week.
Time to prepare a late MR against u-boot/next then ? I think there are also a few other patches pending .
Yes, Will wind up all. thanks.
Jagan.

On Tue, May 16, 2023 at 05:52:36AM -0600, Ashok Reddy Soma wrote:
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
Applied to u-boot/next, thanks!
participants (5)
-
Ashok Reddy Soma
-
Jagan Teki
-
Marek Vasut
-
Michal Simek
-
Tom Rini