mtd: ubi: get_bad_peb_limit from mtd master
Like mentioned in the coment we need the size of the entire flash chip. Check if a master exists and take his size. Otherwise the limit will be too small and kernel prints: UBI warning: print_rsvd_warning: cannot reserve enough PEBs for \ bad PEB handling, reserved 19, need 20 Signed-off-by: Jan Weitzel <j.weitzel@phytec.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
16018ed7fe
commit
c267e2dd73
|
@ -237,7 +237,11 @@ static int get_bad_peb_limit(const struct ubi_device *ubi, int max_beb_per1024)
|
|||
* is that all the bad eraseblocks of the chip are in
|
||||
* the MTD partition we are attaching (ubi->mtd).
|
||||
*/
|
||||
device_size = ubi->mtd->size;
|
||||
if (ubi->mtd->master)
|
||||
device_size = ubi->mtd->master->size;
|
||||
else
|
||||
device_size = ubi->mtd->size;
|
||||
|
||||
device_pebs = mtd_div_by_eb(device_size, ubi->mtd);
|
||||
limit = mult_frac(device_pebs, max_beb_per1024, 1024);
|
||||
|
||||
|
|
Loading…
Reference in New Issue