浏览代码

UBI: init eba tables before wl when attaching a device

This fixes that u-boot gets stuck when a bitflip was detected
during "ubi part <ubi_device>". If a bitflip was detected UBI tries
to copy the PEB to a different place. This needs that the eba table
are initialized, but this was done after the wear levelling worker
detects the bitflip. So changes the initialisation of these two
tasks in u-boot.

This is a u-boot specific patch and not needed in the linux layer,
because due to commit 1b1f9a9d00447d
UBI: Ensure that "background thread" operations are really executed
we schedule these tasks in place and not as in linux after the inital
task which schedule this new task is finished.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Stefan Roese <sr@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
Holger Brunck 13 年之前
父节点
当前提交
d63894654d
共有 1 个文件被更改,包括 6 次插入6 次删除
  1. 6 6
      drivers/mtd/ubi/build.c

+ 6 - 6
drivers/mtd/ubi/build.c

@@ -476,21 +476,21 @@ static int attach_by_scanning(struct ubi_device *ubi)
 	if (err)
 		goto out_si;
 
-	err = ubi_wl_init_scan(ubi, si);
-	if (err)
-		goto out_vtbl;
-
 	err = ubi_eba_init_scan(ubi, si);
 	if (err)
 		goto out_wl;
 
+	err = ubi_wl_init_scan(ubi, si);
+	if (err)
+		goto out_vtbl;
+
 	ubi_scan_destroy_si(si);
 	return 0;
 
-out_wl:
-	ubi_wl_close(ubi);
 out_vtbl:
 	vfree(ubi->vtbl);
+out_wl:
+	ubi_wl_close(ubi);
 out_si:
 	ubi_scan_destroy_si(si);
 	return err;