| From ef5aafb6e4e9942a28cd300bdcda21ce6cbaf045 Mon Sep 17 00:00:00 2001 |
| From: Sascha Hauer <s.hauer@pengutronix.de> |
| Date: Wed, 23 Oct 2019 11:58:12 +0200 |
| Subject: ubi: fastmap: Fix inverted logic in seen selfcheck |
| |
| From: Sascha Hauer <s.hauer@pengutronix.de> |
| |
| commit ef5aafb6e4e9942a28cd300bdcda21ce6cbaf045 upstream. |
| |
| set_seen() sets the bit corresponding to the PEB number in the bitmap, |
| so when self_check_seen() wants to find PEBs that haven't been seen we |
| have to print the PEBs that have their bit cleared, not the ones which |
| have it set. |
| |
| Fixes: 5d71afb00840 ("ubi: Use bitmaps in Fastmap self-check code") |
| Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> |
| Signed-off-by: Richard Weinberger <richard@nod.at> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/mtd/ubi/fastmap.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/mtd/ubi/fastmap.c |
| +++ b/drivers/mtd/ubi/fastmap.c |
| @@ -73,7 +73,7 @@ static int self_check_seen(struct ubi_de |
| return 0; |
| |
| for (pnum = 0; pnum < ubi->peb_count; pnum++) { |
| - if (test_bit(pnum, seen) && ubi->lookuptbl[pnum]) { |
| + if (!test_bit(pnum, seen) && ubi->lookuptbl[pnum]) { |
| ubi_err(ubi, "self-check failed for PEB %d, fastmap didn't see it", pnum); |
| ret = -EINVAL; |
| } |