If there is more than one volume on the device, ubiattach reserves
amount of BEBs as for the whole device, each time. Small volumes can be
covered mainly by reserved blocks on big devices.
With this the amount of BEBs is proportional to the volume size.
---
drivers/mtd/ubi/build.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index 94b4231..54e16f1 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -237,7 +237,7 @@ static int get_bad_peb_limit(const struct ubi_device
*ubi, int max_beb_per1024)
else
device_size = ubi->mtd->size;
- device_pebs = mtd_div_by_eb(device_size, ubi->mtd);
+ device_pebs = mtd_div_by_eb(ubi->mtd->size, ubi->mtd);
limit = mult_frac(device_pebs, max_beb_per1024, 1024);
/* Round it up */
--
2.35.1
Regards,
Michał
_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox