Skip to content

Commit

Permalink
mtd: nand: refactor scanning code
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Brian Norris authored and Artem Bityutskiy committed Sep 11, 2011
1 parent 3e2b82b commit 105513c
Showing 1 changed file with 8 additions and 20 deletions.
28 changes: 8 additions & 20 deletions drivers/mtd/nand/nand_bbt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 105513c

Please sign in to comment.