Message ID | 55C287A9.8000006@nod.at |
---|---|
State | Not Applicable |
Delegated to: | Richard Weinberger |
Headers | show |
On Do, 2015-08-06 at 00:01 +0200, Richard Weinberger wrote: > Am 05.08.2015 um 23:53 schrieb Jörg Krause: > > On Mi, 2015-08-05 at 23:45 +0200, Richard Weinberger wrote: > > > Jörg, > > > > > > Am 05.08.2015 um 23:38 schrieb Jörg Krause: > > > > On Mi, 2015-08-05 at 23:30 +0200, Richard Weinberger wrote: > > > > [snip] > > > > > > > > > > I attached the kernel boot log. > > > > > > Thanks. > > > That's a really small UBI setup. > > > [ 3.202421] ubi1: default fastmap pool size: 10 > > > [ 3.207174] ubi1: default fastmap WL pool size: 5 > > > > What do you exactly mean by small UBI setup? The fastmap pool size? > > The > > UBI layout? > > The UBI image it self. Your MTD is very small. > But it should not matter. > > > [snip] > > > > > > > > > > It is enabled in the kernel config. Not sure how to use it. > > > > > > Then just disable it. :) > > > > I did :) I thought fastmap is used automatically by the UBI driver? > > It will *use* fastmap automatically but not convert non-fastmap UBI > images > to fastmap. > You can enable ubi.fm_autoconvert to do so. Sorry for asking, but how do I create an UBI image with fastmap support? I've never read something about this. > > > Meanwhile I'll find out what exactly is going on. > > > > Many thanks! > > Can you please apply the attached debug patch? > I wonder why exactly the auto resize function is failing. autoresize: cannot auto-resize volume 0: -28 Jörg
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index 22fd19c..89aa7ac9 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -820,8 +820,8 @@ static int autoresize(struct ubi_device *ubi, int vol_id) err = ubi_resize_volume(&desc, old_reserved_pebs + ubi->avail_pebs); if (err) - ubi_err(ubi, "cannot auto-resize volume %d", - vol_id); + ubi_err(ubi, "cannot auto-resize volume %d: %d", + vol_id, err); } if (err) diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c index 1ae17bb..7be6fa3 100644 --- a/drivers/mtd/ubi/vmt.c +++ b/drivers/mtd/ubi/vmt.c @@ -498,8 +498,10 @@ int ubi_resize_volume(struct ubi_volume_desc *desc, int reserved_pebs) if (pebs < 0) { for (i = 0; i < -pebs; i++) { err = ubi_eba_unmap_leb(ubi, vol, reserved_pebs + i); - if (err) + if (err) { + ubi_err(ubi, "unable to unmap LEB"); goto out_acc; + } } spin_lock(&ubi->volumes_lock); ubi->rsvd_pebs += pebs;