aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/ubi
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2008-07-18 05:20:23 -0400
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2008-07-24 06:34:46 -0400
commit8c1e6ee10bd87d70faada065a8d1f70732c17382 (patch)
treebd5e9325aed3e6e659a385f57bba1d88397cfdbf /drivers/mtd/ubi
parentf40ac9cdf6991287f19bdafe9b0752ee40137908 (diff)
UBI: rework scrubbing messages
If bit-flips happen often, UBI prints to many messages. Lessen the amount by only printing the messages when the PEB has been scrubbed. Also, print torturing messages. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'drivers/mtd/ubi')
-rw-r--r--drivers/mtd/ubi/io.c8
-rw-r--r--drivers/mtd/ubi/wl.c6
2 files changed, 12 insertions, 2 deletions
diff --git a/drivers/mtd/ubi/io.c b/drivers/mtd/ubi/io.c
index 27b9c2c2fc60..2bebb39d19b3 100644
--- a/drivers/mtd/ubi/io.c
+++ b/drivers/mtd/ubi/io.c
@@ -156,8 +156,12 @@ retry:
156 /* 156 /*
157 * -EUCLEAN is reported if there was a bit-flip which 157 * -EUCLEAN is reported if there was a bit-flip which
158 * was corrected, so this is harmless. 158 * was corrected, so this is harmless.
159 *
160 * We do not report about it here unless debugging is
161 * enabled. A corresponding message will be printed
162 * later, when it is has been scrubbed.
159 */ 163 */
160 ubi_msg("fixable bit-flip detected at PEB %d", pnum); 164 dbg_msg("fixable bit-flip detected at PEB %d", pnum);
161 ubi_assert(len == read); 165 ubi_assert(len == read);
162 return UBI_IO_BITFLIPS; 166 return UBI_IO_BITFLIPS;
163 } 167 }
@@ -391,6 +395,7 @@ static int torture_peb(struct ubi_device *ubi, int pnum)
391{ 395{
392 int err, i, patt_count; 396 int err, i, patt_count;
393 397
398 ubi_msg("run torture test for PEB %d", pnum);
394 patt_count = ARRAY_SIZE(patterns); 399 patt_count = ARRAY_SIZE(patterns);
395 ubi_assert(patt_count > 0); 400 ubi_assert(patt_count > 0);
396 401
@@ -434,6 +439,7 @@ static int torture_peb(struct ubi_device *ubi, int pnum)
434 } 439 }
435 440
436 err = patt_count; 441 err = patt_count;
442 ubi_msg("PEB %d passed torture test, do not mark it a bad", pnum);
437 443
438out: 444out:
439 mutex_unlock(&ubi->buf_mutex); 445 mutex_unlock(&ubi->buf_mutex);
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index 761952ba125b..6821952bcdb8 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -873,6 +873,10 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
873 } 873 }
874 874
875 ubi_free_vid_hdr(ubi, vid_hdr); 875 ubi_free_vid_hdr(ubi, vid_hdr);
876 if (scrubbing && !protect)
877 ubi_msg("scrubbed PEB %d, data moved to PEB %d",
878 e1->pnum, e2->pnum);
879
876 spin_lock(&ubi->wl_lock); 880 spin_lock(&ubi->wl_lock);
877 if (protect) 881 if (protect)
878 prot_tree_add(ubi, e1, pe, protect); 882 prot_tree_add(ubi, e1, pe, protect);
@@ -1231,7 +1235,7 @@ int ubi_wl_scrub_peb(struct ubi_device *ubi, int pnum)
1231{ 1235{
1232 struct ubi_wl_entry *e; 1236 struct ubi_wl_entry *e;
1233 1237
1234 ubi_msg("schedule PEB %d for scrubbing", pnum); 1238 dbg_msg("schedule PEB %d for scrubbing", pnum);
1235 1239
1236retry: 1240retry:
1237 spin_lock(&ubi->wl_lock); 1241 spin_lock(&ubi->wl_lock);