mtd: nand: scrub BBT on ECC errors
authorBrian Norris <computersforpeace@gmail.com>
Wed, 21 Sep 2011 01:35:34 +0000 (18:35 -0700)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Wed, 21 Sep 2011 06:19:07 +0000 (09:19 +0300)
commit623978de362a5faeb18d8395fa86089650642626
treef5f6b3b77b5a25f438f0b1b90bf591986a1fa489
parent167a8d52509a0f7d6728a79e2588b800e866c147
mtd: nand: scrub BBT on ECC errors

Now that `read_bbt()' returns ECC error codes properly, we handle those
codes when checking the integrity of our flash-based BBT.

The modifications can be described by this new policy:

*) On any uncorrected ECC error, we invalidate the corresponding table
   and retry our version-checking integrity logic.
*) On corrected bitflips, we mark both tables for re-writing to flash
   (a.k.a. scrubbing).

Current integrity checks (i.e., comparing version numbers, etc.) should
take care of all the cases that result in rescanning the device for bad
blocks or falling back to the BBT as found in the mirror descriptor.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
drivers/mtd/nand/nand_bbt.c