]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mtd: nand: mxs_nand_spl: don't read useless pages
authorDario Binacchi <dario.binacchi@amarulasolutions.com>
Sun, 20 Nov 2022 09:57:04 +0000 (10:57 +0100)
committerDario Binacchi <dario.binacchi@amarulasolutions.com>
Sat, 10 Dec 2022 13:35:55 +0000 (14:35 +0100)
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
drivers/mtd/nand/raw/mxs_nand_spl.c

index ef03b7789dd915afb52e7cceed77b6686a00eaf2..300662994cf22a0d252164ec17c3f725ad33e5c9 100644 (file)
@@ -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) {