diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index a796dd7..68af8b0 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1069,7 +1069,16 @@ static int nand_read_page_raw(struct mtd_info *mtd, struct nand_chip *chip,
                              uint8_t *buf, int page)
 {
        chip->read_buf(mtd, buf, mtd->writesize);
-       chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);
+       chip->read_buf(mtd, chip->oob_poi, mtd->oobsize); /* (this data used in sw ecc) */
+
+       /* TODO: only do this CMD_STATUS if we have Micron NAND */
+       chip->cmdfunc(mtd, NAND_CMD_STATUS, -1, -1);
+       if (chip->read_byte(mtd) & NAND_STATUS_REWRITE_RECOMMENDED) {
+               /* Micron NAND is telling us that this block may be going bad,
+                  tell Linux to move it */
+               mtd->ecc_stats.corrected++; /* (we don't actually know if it's just one correction, could be up to 4) */
+       }
+
        return 0;
 }

