On Thu, 2015-05-14 at 14:35 -0700, Tim Harvey wrote: > nand_read_skip_bad() already loops over blocks and handles bad block check > so eliminate this redundant logic. > > Signed-off-by: Tim Harvey <thar...@gateworks.com> > --- > v2: fix limit > > common/env_nand.c | 32 ++++++-------------------------- > 1 file changed, 6 insertions(+), 26 deletions(-) > > diff --git a/common/env_nand.c b/common/env_nand.c > index bab89fd..78e7b58 100644 > --- a/common/env_nand.c > +++ b/common/env_nand.c > @@ -268,35 +268,15 @@ static int readenv(size_t offset, u_char *buf) > #else > static int readenv(size_t offset, u_char *buf) > { > - size_t end = offset + CONFIG_ENV_RANGE; > - size_t amount_loaded = 0; > - size_t blocksize, len; > - u_char *char_ptr; > + nand_info_t *nand = &nand_info[0]; > + size_t len; > > - blocksize = nand_info[0].erasesize; > - if (!blocksize) > + len = min((size_t)nand->size - offset, (size_t)CONFIG_ENV_RANGE);
This should be the limit ("lim", what you currently have as nand->size), not len. > + debug("%s: offset=0x%08x len=0x%08x\n", __func__, offset, len); > + if (nand_read_skip_bad(nand, offset, &len, NULL, nand->size, buf)) > return 1; -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot