]> www.infradead.org Git - mtd-utils.git/commitdiff
nandwrite: replace erase loop with mtd_erase_multi
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>
Wed, 11 Jan 2017 10:53:51 +0000 (11:53 +0100)
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>
Thu, 12 Jan 2017 10:02:19 +0000 (11:02 +0100)
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
nand-utils/nandwrite.c

index 998c68c1c78cc1962b937f503e1afe2e25936871..22c741dcedba3768d3b9125cad1c469cf1e44544 100644 (file)
@@ -540,7 +540,6 @@ int main(int argc, char * const argv[])
                }
 
                if (ret) {
-                       long long i;
                        if (errno != EIO) {
                                sys_errmsg("%s: MTD write failure", mtd_device);
                                goto closeall;
@@ -551,13 +550,13 @@ int main(int argc, char * const argv[])
 
                        fprintf(stderr, "Erasing failed write from %#08llx to %#08llx\n",
                                blockstart, blockstart + ebsize_aligned - 1);
-                       for (i = blockstart; i < blockstart + ebsize_aligned; i += mtd.eb_size) {
-                               if (mtd_erase(mtd_desc, &mtd, fd, i / mtd.eb_size)) {
-                                       int errno_tmp = errno;
-                                       sys_errmsg("%s: MTD Erase failure", mtd_device);
-                                       if (errno_tmp != EIO)
-                                               goto closeall;
-                               }
+
+                       if (mtd_erase_multi(mtd_desc, &mtd, fd,
+                                       blockstart / mtd.eb_size, blockalign)) {
+                               int errno_tmp = errno;
+                               sys_errmsg("%s: MTD Erase failure", mtd_device);
+                               if (errno_tmp != EIO)
+                                       goto closeall;
                        }
 
                        if (markbad) {