From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Thu, 20 Jun 2013 12:22:45 -0500 Subject: [U-Boot] [PATCH v2] dfu, nand: before write a buffer to nand, erase the nand sectors In-Reply-To: <51C286C1.2030101@denx.de> (from hs@denx.de on Wed Jun 19 23:36:17 2013) Message-ID: <1371748965.11064.12@snotra> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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