mtd: nand: revive "nand scrub" command
authorMasahiro Yamada <yamada.m@jp.panasonic.com>
Tue, 16 Dec 2014 06:36:33 +0000 (15:36 +0900)
committerScott Wood <scottwood@freescale.com>
Fri, 9 Jan 2015 18:18:58 +0000 (12:18 -0600)
Since commit ff94bc40af34 (mtd, ubi, ubifs: resync with Linux-3.14),
the "nand scrub" command has not been working.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Scott Wood <scottwood@freescale.com>
Cc: Heiko Schocher <hs@denx.de>
drivers/mtd/nand/nand_base.c

index 70e780c3113a6049cfd5fac686bbfdd140b4050a..d04c7ea0ae7c66afca1167cc5f9aac78cfa21197 100644 (file)
@@ -2905,7 +2905,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
                WATCHDOG_RESET();
 
                /* Check if we have a bad block, we do not erase bad blocks! */
-               if (nand_block_checkbad(mtd, ((loff_t) page) <<
+               if (!instr->scrub && nand_block_checkbad(mtd, ((loff_t) page) <<
                                        chip->page_shift, 0, allowbbt)) {
                        pr_warn("%s: attempt to erase a bad block at page 0x%08x\n",
                                    __func__, page);