Message ID | 20221120095705.3019295-1-dario.binacchi@amarulasolutions.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
On Sun, Nov 20, 2022 at 10:57 AM Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote: > > The patch prevents pages beyond the last from being unnecessarily read. > This occurs when the last page to be read is not the last page of the > last block. Before this change we would have read all the pages up to > the end of the last block. > > Suggested-by: Michael Trimarchi <michael@amarulasolutions.com> > Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com> > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com> > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > Acked-by: Michael Trimarchi <michael@amarulasolutions.com> > --- > > drivers/mtd/nand/raw/mxs_nand_spl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/raw/mxs_nand_spl.c b/drivers/mtd/nand/raw/mxs_nand_spl.c > index ef03b7789dd9..300662994cf2 100644 > --- a/drivers/mtd/nand/raw/mxs_nand_spl.c > +++ b/drivers/mtd/nand/raw/mxs_nand_spl.c > @@ -257,7 +257,7 @@ int nand_spl_load_image(uint32_t offs, unsigned int size, void *dst) > while (block <= lastblock && size > 0) { > if (!is_badblock(mtd, mtd->erasesize * block, 1)) { > /* Skip bad blocks */ > - while (page < nand_page_per_block) { > + while (page < nand_page_per_block && size) { > int curr_page = nand_page_per_block * block + page; > > if (mxs_read_page_ecc(mtd, page_buf, curr_page) < 0) { > -- > 2.32.0 >
diff --git a/drivers/mtd/nand/raw/mxs_nand_spl.c b/drivers/mtd/nand/raw/mxs_nand_spl.c index ef03b7789dd9..300662994cf2 100644 --- a/drivers/mtd/nand/raw/mxs_nand_spl.c +++ b/drivers/mtd/nand/raw/mxs_nand_spl.c @@ -257,7 +257,7 @@ int nand_spl_load_image(uint32_t offs, unsigned int size, void *dst) while (block <= lastblock && size > 0) { if (!is_badblock(mtd, mtd->erasesize * block, 1)) { /* Skip bad blocks */ - while (page < nand_page_per_block) { + while (page < nand_page_per_block && size) { int curr_page = nand_page_per_block * block + page; if (mxs_read_page_ecc(mtd, page_buf, curr_page) < 0) {