Browse Source

kernel: mtk_bmt: remap blocks after reaching bitflip threshold

This ensures that blocks are remapped before data becomes corrupt

Signed-off-by: Felix Fietkau <[email protected]>
Felix Fietkau 4 years ago
parent
commit
7235c8d00c
1 changed files with 4 additions and 0 deletions
  1. 4 0
      target/linux/generic/files/drivers/mtd/nand/mtk_bmt.c

+ 4 - 0
target/linux/generic/files/drivers/mtd/nand/mtk_bmt.c

@@ -529,6 +529,10 @@ mtk_bmt_read(struct mtd_info *mtd, loff_t from,
 			goto out;
 		}
 
+		if (cur_ret >= mtd->bitflip_threshold &&
+		    mapping_block_in_range(block))
+			update_bmt(block, mtd->erasesize);
+
 		ops->retlen += cur_ops.retlen;
 		ops->oobretlen += cur_ops.oobretlen;