diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-07-18 05:20:23 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-07-24 06:34:46 -0400 |
commit | 8c1e6ee10bd87d70faada065a8d1f70732c17382 (patch) | |
tree | bd5e9325aed3e6e659a385f57bba1d88397cfdbf | |
parent | f40ac9cdf6991287f19bdafe9b0752ee40137908 (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>
-rw-r--r-- | drivers/mtd/ubi/io.c | 8 | ||||
-rw-r--r-- | drivers/mtd/ubi/wl.c | 6 |
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 | ||
438 | out: | 444 | out: |
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 | ||
1236 | retry: | 1240 | retry: |
1237 | spin_lock(&ubi->wl_lock); | 1241 | spin_lock(&ubi->wl_lock); |