summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2013-09-28 15:55:12 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-01-07 11:03:24 +0100
commit8000a53dda8faa350ac16d9b23e6480a288f668b (patch)
treef0cb3f1497cb073e0cb58de02c0a47af53c56d65 /drivers
parent4a290f970d59086d453e6b8a701107b2ebf6e15d (diff)
downloadbarebox-8000a53dda8faa350ac16d9b23e6480a288f668b.tar.gz
barebox-8000a53dda8faa350ac16d9b23e6480a288f668b.tar.xz
UBI: Call scan_all() with correct offset in error case
If we find an invalid fastmap we have to scan from the very beginning. Otherwise we leak the first 64 PEBs. Reported-and-tested-by: Richard Genoud <richard.genoud@gmail.com> Signed-off-by: Richard Weinberger <richard@nod.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mtd/ubi/attach.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mtd/ubi/attach.c b/drivers/mtd/ubi/attach.c
index 62d611310c..8c5c8c3765 100644
--- a/drivers/mtd/ubi/attach.c
+++ b/drivers/mtd/ubi/attach.c
@@ -1397,9 +1397,11 @@ int ubi_attach(struct ubi_device *ubi, int force_scan)
ai = alloc_ai("ubi_aeb_slab_cache2");
if (!ai)
return -ENOMEM;
- }
- err = scan_all(ubi, ai, UBI_FM_MAX_START);
+ err = scan_all(ubi, ai, 0);
+ } else {
+ err = scan_all(ubi, ai, UBI_FM_MAX_START);
+ }
}
}
#else