[U-Boot] UBI: regression since "mtd: ubi: Fix worker handling"

Richard Weinberger richard at nod.at
Mon May 21 19:31:55 UTC 2018


Patrice,

Am Montag, 21. Mai 2018, 16:07:41 CEST schrieb Richard Weinberger:
> >   		e->pnum = aeb->pnum;
> >   		e->ec = aeb->ec;
> >   		ubi->lookuptbl[e->pnum] = e;
> > +		ubi->thread_enabled = 1;
> 
> This is not correct. At this point the UBI thread is not ready.
> I know, I know, U-Boot has no threads but some data structures might
> not be ready.
> 
> Let me think how to work around this properly.

The root cause seems to be that U-Boot misses this fix from Linux:

commit 1cb8f9776c7dcadc57885c6653943511d282633b
Author: Richard Weinberger <richard at nod.at>
Date:   Tue Aug 11 23:27:44 2015 +0200

    ubi: fastmap: Implement produce_free_peb()
    
    If fastmap requests a free PEB for a pool and UBI is busy
    with erasing PEBs we need to offer a function to wait for one.
    We can reuse produce_free_peb() from the non-fastmap WL code
    but with different locking semantics.
    
    Cc: stable at vger.kernel.org # 4.1.x-
    Reported-and-tested-by: Jörg Krause <joerg.krause at embedded.rocks>
    Signed-off-by: Richard Weinberger <richard at nod.at

Heiko, I'm currently working on Fastmap in Linux[0].
I suggest to re-syncing with Linux if my changes go upstream, I can ping you them. :-)
Fastmap gained many improvements since the last sync.

Thanks,
//richard

[0] http://lists.infradead.org/pipermail/linux-mtd/2018-May/080965.html


More information about the U-Boot mailing list