From: Sascha Hauer <s.hauer@pengutronix.de>
To: Teresa Remmet <t.remmet@phytec.de>
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH] mtd: ubi: Fix endless loop when moving PEB
Date: Tue, 28 Jun 2016 07:26:33 +0200 [thread overview]
Message-ID: <20160628052633.GF20657@pengutronix.de> (raw)
In-Reply-To: <1467015758.3805.4.camel@lws-tremmet.phytec.de>
On Mon, Jun 27, 2016 at 10:22:38AM +0200, Teresa Remmet wrote:
> Hello Sascha,
>
> Am Freitag, den 24.06.2016, 13:20 +0200 schrieb Sascha Hauer:
> > Hi Teresa,
> >
> > On Wed, Jun 22, 2016 at 11:01:57AM +0200, Teresa Remmet wrote:
> > > When moving a PEB the leb_write_trylock() function is called.
> > > As the function never returns 0 UBI will end up in an endless
> > > loop.
> > >
> > > Noticed the issue when fastmap has been enabled and data is beeing copied
> > > several times to a UBI volume. When UBI tries to move the anchor PEB,
> > > the issue comes up.
> > >
> > > The leb_write_trylock() is now equal to the leb_write_lock().
> > > But kept it for easier maintaince in future when syncing with
> > > kernel.
> > >
> > > Signed-off-by: Teresa Remmet <t.remmet@phytec.de>
> > > ---
> > > drivers/mtd/ubi/eba.c | 11 +----------
> > > 1 file changed, 1 insertion(+), 10 deletions(-)
> > >
> > > diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
> > > index a7af247..31dbcd2 100644
> > > --- a/drivers/mtd/ubi/eba.c
> > > +++ b/drivers/mtd/ubi/eba.c
> > > @@ -257,16 +257,7 @@ static int leb_write_trylock(struct ubi_device *ubi, int vol_id, int lnum)
> > > le = ltree_add_entry(ubi, vol_id, lnum);
> > > if (IS_ERR(le))
> > > return PTR_ERR(le);
> > > -
> > > - /* Contention, cancel */
> > > - le->users -= 1;
> > > - ubi_assert(le->users >= 0);
> > > - if (le->users == 0) {
> > > - rb_erase(&le->rb, &ubi->ltree);
> > > - kfree(le);
> > > - }
> > > -
> > > - return 1;
> > > + return 0;
> > > }
> >
> > This seems to be the missing link to make the following patch work. I
> > have tried this several times but so far never found this bug. Could you
> > give it a try? With this patch it should be now possible to ubiformat a
> > device with an image and to generate a fastmap when the device is
> > detached first.
>
> I tested it, and it is working. Ubi now successfully writes an anchor
> PEB.
Thanks for testing. Applied both patches.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
prev parent reply other threads:[~2016-06-28 5:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-22 9:01 [PATCH] mtd: ubi: Fix endless loop when moving PEB Teresa Remmet
2016-06-24 11:20 ` Sascha Hauer
2016-06-27 8:22 ` Teresa Remmet
2016-06-28 5:26 ` Sascha Hauer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160628052633.GF20657@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=t.remmet@phytec.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.