summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Binacchi <dario.binacchi@amarulasolutions.com>2022-11-20 10:57:04 +0100
committerDario Binacchi <dario.binacchi@amarulasolutions.com>2022-12-10 14:35:55 +0100
commit17c2ccde22c7374df452db057b185b4c9f9b6bd0 (patch)
tree1527a32cff9baedb5228bf4311b9438276abc783
parent670789f5ba2f3330b137f637deb47671b8720c33 (diff)
downloadu-boot-17c2ccde22c7374df452db057b185b4c9f9b6bd0.tar.gz
u-boot-17c2ccde22c7374df452db057b185b4c9f9b6bd0.tar.bz2
u-boot-17c2ccde22c7374df452db057b185b4c9f9b6bd0.zip
mtd: nand: mxs_nand_spl: don't read useless pages
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> Link: https://lore.kernel.org/all/20221120095705.3019295-1-dario.binacchi@amarulasolutions.com
-rw-r--r--drivers/mtd/nand/raw/mxs_nand_spl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/nand/raw/mxs_nand_spl.c b/drivers/mtd/nand/raw/mxs_nand_spl.c
index ef03b7789d..300662994c 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) {