|
@@ -1505,7 +1505,8 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,
|
|
|
|
|
|
/* Transfer not aligned data */
|
|
/* Transfer not aligned data */
|
|
if (!aligned) {
|
|
if (!aligned) {
|
|
- if (!NAND_SUBPAGE_READ(chip) && !oob)
|
|
|
|
|
|
+ if (!NAND_SUBPAGE_READ(chip) && !oob &&
|
|
|
|
+ !(mtd->ecc_stats.failed - stats.failed))
|
|
chip->pagebuf = realpage;
|
|
chip->pagebuf = realpage;
|
|
memcpy(buf, chip->buffers->databuf + col, bytes);
|
|
memcpy(buf, chip->buffers->databuf + col, bytes);
|
|
}
|
|
}
|