aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2014-10-07 18:51:07 +0200
committerRichard Weinberger <richard@nod.at>2015-03-26 22:45:58 +0100
commita83832a7c8d023f446ec865926190951bd18a4b1 (patch)
tree4b00e237f31ef379fb49338668206640fd15029a
parentUBI: Fastmap: Fix race in ubi_eba_atomic_leb_change() (diff)
downloadlinux-dev-a83832a7c8d023f446ec865926190951bd18a4b1.tar.xz
linux-dev-a83832a7c8d023f446ec865926190951bd18a4b1.zip
UBI: Fastmap: Remove bogus ubi_assert()
It is legal to have PEBs left in the used list. This can happen if UBI copies a PEB and a powercut happens between writing a new fastmap and adding this PEB into the EBA table. In this case the old PEB will be used. Signed-off-by: Richard Weinberger <richard@nod.at>
-rw-r--r--drivers/mtd/ubi/fastmap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c
index 600c4f9683e9..9858bfb22314 100644
--- a/drivers/mtd/ubi/fastmap.c
+++ b/drivers/mtd/ubi/fastmap.c
@@ -814,7 +814,9 @@ static int ubi_attach_fastmap(struct ubi_device *ubi,
list_for_each_entry_safe(tmp_aeb, _tmp_aeb, &free, u.list)
list_move_tail(&tmp_aeb->u.list, &ai->free);
- ubi_assert(list_empty(&used));
+ list_for_each_entry_safe(tmp_aeb, _tmp_aeb, &used, u.list)
+ list_move_tail(&tmp_aeb->u.list, &ai->erase);
+
ubi_assert(list_empty(&eba_orphans));
ubi_assert(list_empty(&free));