On 06/19/2013 11:36:17 PM, Heiko Schocher wrote:
Hello Scott,

Am 18.06.2013 02:51, schrieb Scott Wood:
> Maybe we need an opts.limit?

Yes, I think so ... whats with the following proposal:

diff --git a/drivers/mtd/nand/nand_util.c b/drivers/mtd/nand/nand_util.c
index d81972c..b877c7d 100644
--- a/drivers/mtd/nand/nand_util.c
+++ b/drivers/mtd/nand/nand_util.c
@@ -120,6 +120,10 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts)

                WATCHDOG_RESET();

+               if ((opts->limit) && (erase.addr > opts->limit)) {
+ puts("Size of write exceeds partition or device limit\n");
+                       return -EFBIG;
+               }

This is treating limit as an address rather than a size.

Also, unnecessary parens.

diff --git a/include/nand.h b/include/nand.h
index 26190e4..d799df3 100644
--- a/include/nand.h
+++ b/include/nand.h
@@ -125,6 +125,8 @@ struct nand_erase_options {

        /* Don't include skipped bad blocks in size to be erased */
        int spread;
+ /* maximum size that actual may be in order to not exceed the buf */
+       loff_t limit;
 };

 typedef struct nand_erase_options nand_erase_options_t;

I checked for all calls from nand_erase_opts, that the nand_erase_options_t
parameters are initialized with 0 ... so this patch should not change
current behaviour.

Should I do this in a seperate patch, or add it to the "dfu, nand:
before write a buffer to nand, erase the nand sectors" patch, so it adds
no dead code ...

A separate patch within a patchset should be fine, but I'm also OK with combining them since the whole thing would still be small and straightforward enough to be easily reviewed.

-Scott
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to