mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Richard Weinberger <richard@nod.at>, stable@vger.kernel.org
Subject: [PATCH 1/9] UBI: Fix PEB leak in wear_leveling_worker()
Date: Tue,  7 Jan 2014 11:05:27 +0100	[thread overview]
Message-ID: <1389089135-29986-2-git-send-email-s.hauer@pengutronix.de> (raw)
In-Reply-To: <1389089135-29986-1-git-send-email-s.hauer@pengutronix.de>

From: Richard Weinberger <richard@nod.at>

get_peb_for_wl() removes the PEB from the free list.
If the WL subsystem detects that no wear leveling is needed
it cancels the operation and drops the gained PEB.
In this case we have to put the PEB back into the free list.

This issue was introduced with commit ed4b7021c
(UBI: remove PEB from free tree in get_peb_for_wl()).

Cc: <stable@vger.kernel.org> # 3.7.x
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---
 drivers/mtd/ubi/wl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index d0d3c97..5a79e98 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -1020,6 +1020,9 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
 		if (!(e2->ec - e1->ec >= UBI_WL_THRESHOLD)) {
 			dbg_wl("no WL needed: min used EC %d, max free EC %d",
 			       e1->ec, e2->ec);
+
+			/* Give the unused PEB back */
+			wl_tree_add(e2, &ubi->free);
 			goto out_cancel;
 		}
 		self_check_in_wl_tree(ubi, e1, &ubi->used);
-- 
1.8.5.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2014-01-07 10:11 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07 10:05 UBI patches Sascha Hauer
2014-01-07 10:05 ` Sascha Hauer [this message]
2014-01-07 10:05 ` [PATCH 2/9] UBI: Fix invalidate_fastmap() Sascha Hauer
2014-01-07 10:05 ` [PATCH 3/9] UBI: fix refill_wl_user_pool() Sascha Hauer
2014-01-07 10:05 ` [PATCH 4/9] UBI: Fix error path in scan_pool() Sascha Hauer
2014-01-07 10:05 ` [PATCH 5/9] UBI: Call scan_all() with correct offset in error case Sascha Hauer
2014-01-07 10:05 ` [PATCH 6/9] UBI: fastmap: fix backward compatibility with image_seq Sascha Hauer
2014-01-07 10:05 ` [PATCH 7/9] UBI: simplify image sequence test Sascha Hauer
2014-01-07 10:05 ` [PATCH 8/9] UBI: Fix memory leak in ubi_attach_fastmap() error path Sascha Hauer
2014-01-07 10:05 ` [PATCH 9/9] UBI: Add some asserts to ubi_attach_fastmap() Sascha Hauer

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=1389089135-29986-2-git-send-email-s.hauer@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=richard@nod.at \
    --cc=stable@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox