| From f7d11b33d4e8cedf19367c09b891bbc705163976 Mon Sep 17 00:00:00 2001 |
| From: Richard Weinberger <richard@nod.at> |
| Date: Wed, 24 Aug 2016 14:36:15 +0200 |
| Subject: ubi: Fix Fastmap's update_vol() |
| |
| From: Richard Weinberger <richard@nod.at> |
| |
| commit f7d11b33d4e8cedf19367c09b891bbc705163976 upstream. |
| |
| Usually Fastmap is free to consider every PEB in one of the pools |
| as newer than the existing PEB. Since PEBs in a pool are by definition |
| newer than everything else. |
| But update_vol() missed the case that a pool can contain more than |
| one candidate. |
| |
| Cc: <stable@vger.kernel.org> |
| Fixes: dbb7d2a88d ("UBI: Add fastmap core") |
| Signed-off-by: Richard Weinberger <richard@nod.at> |
| Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com> |
| Signed-off-by: Richard Weinberger <richard@nod.at> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/mtd/ubi/fastmap.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/mtd/ubi/fastmap.c |
| +++ b/drivers/mtd/ubi/fastmap.c |
| @@ -326,6 +326,7 @@ static int update_vol(struct ubi_device |
| aeb->pnum = new_aeb->pnum; |
| aeb->copy_flag = new_vh->copy_flag; |
| aeb->scrub = new_aeb->scrub; |
| + aeb->sqnum = new_aeb->sqnum; |
| kmem_cache_free(ai->aeb_slab_cache, new_aeb); |
| |
| /* new_aeb is older */ |