summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu CASTET <matthieu.castet@parrot.com>2012-08-22 16:03:46 +0200
committerBen Hutchings <ben@decadent.org.uk>2012-10-17 03:48:19 +0100
commit04ed02cc7d431eb295bf9a4cb33c13319f34c48a (patch)
tree408c76dede38908600d4948cf34ff8a6f7db13ef
parentaa85d9855447adcbc162705e922654ff4df96467 (diff)
downloadlwn-04ed02cc7d431eb295bf9a4cb33c13319f34c48a.tar.gz
lwn-04ed02cc7d431eb295bf9a4cb33c13319f34c48a.zip
UBI: erase free PEB with bitflip in EC header
commit 193819cf2e6e395b1e1be2d36785dc5563a6edca upstream. Without this patch, these PEB are not scrubbed until we put data in them. Bitflip can accumulate latter and we can loose the EC header (but VID header should be intact and allow to recover data). Signed-off-by: Matthieu Castet <matthieu.castet@parrot.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> [bwh: Backported to 3.2: adjust filename, context] Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--drivers/mtd/ubi/scan.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/ubi/scan.c b/drivers/mtd/ubi/scan.c
index b99318ed51e6..b2b62dee93a0 100644
--- a/drivers/mtd/ubi/scan.c
+++ b/drivers/mtd/ubi/scan.c
@@ -997,7 +997,7 @@ static int process_eb(struct ubi_device *ubi, struct ubi_scan_info *si,
return err;
goto adjust_mean_ec;
case UBI_IO_FF:
- if (ec_err)
+ if (ec_err || bitflips)
err = add_to_list(si, pnum, ec, 1, &si->erase);
else
err = add_to_list(si, pnum, ec, 0, &si->free);