mtd: nand: refactor scanning code
authorBrian Norris <computersforpeace@gmail.com>
Wed, 7 Sep 2011 20:13:28 +0000 (13:13 -0700)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Sun, 11 Sep 2011 13:48:47 +0000 (16:48 +0300)
A few pieces of code are unnecessarily duplicated. For easier
maintenance, we should fix this.

This should have no functional effect.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
drivers/mtd/nand/nand_bbt.c

index c488bcb84c906050e1fe8a046880f88f07d7d61c..cbf9b695c6f214ef24a066b095cf0bbcaafa3e0b 100644 (file)
@@ -306,28 +306,16 @@ static int scan_read_raw_oob(struct mtd_info *mtd, uint8_t *buf, loff_t offs,
        ops.ooboffs = 0;
        ops.ooblen = mtd->oobsize;
 
-
        while (len > 0) {
-               if (len <= mtd->writesize) {
-                       ops.oobbuf = buf + len;
-                       ops.datbuf = buf;
-                       ops.len = len;
-                       res = mtd->read_oob(mtd, offs, &ops);
-
-                       /* Ignore ECC errors when checking for BBM */
-                       if (res != -EUCLEAN && res != -EBADMSG)
-                               return res;
-                       return 0;
-               } else {
-                       ops.oobbuf = buf + mtd->writesize;
-                       ops.datbuf = buf;
-                       ops.len = mtd->writesize;
-                       res = mtd->read_oob(mtd, offs, &ops);
+               ops.datbuf = buf;
+               ops.len = min(len, (size_t)mtd->writesize);
+               ops.oobbuf = buf + ops.len;
 
-                       /* Ignore ECC errors when checking for BBM */
-                       if (res && res != -EUCLEAN && res != -EBADMSG)
-                               return res;
-               }
+               res = mtd->read_oob(mtd, offs, &ops);
+
+               /* Ignore ECC errors when checking for BBM */
+               if (res && res != -EUCLEAN && res != -EBADMSG)
+                       return res;
 
                buf += mtd->oobsize + mtd->writesize;
                len -= mtd->writesize;