diff options
Diffstat (limited to 'drivers/mtd/ubi/debug.h')
-rw-r--r-- | drivers/mtd/ubi/debug.h | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/drivers/mtd/ubi/debug.h b/drivers/mtd/ubi/debug.h index 2511b586490a..0b0c2888c656 100644 --- a/drivers/mtd/ubi/debug.h +++ b/drivers/mtd/ubi/debug.h | |||
@@ -116,13 +116,34 @@ int ubi_dbg_check_all_ff(struct ubi_device *ubi, int pnum, int offset, int len); | |||
116 | int ubi_dbg_check_write(struct ubi_device *ubi, const void *buf, int pnum, | 116 | int ubi_dbg_check_write(struct ubi_device *ubi, const void *buf, int pnum, |
117 | int offset, int len); | 117 | int offset, int len); |
118 | 118 | ||
119 | #ifdef CONFIG_MTD_UBI_DEBUG_DISABLE_BGT | 119 | extern unsigned int ubi_tst_flags; |
120 | #define DBG_DISABLE_BGT 1 | 120 | |
121 | #else | 121 | /* |
122 | #define DBG_DISABLE_BGT 0 | 122 | * Special testing flags. |
123 | #endif | 123 | * |
124 | * UBIFS_TST_DISABLE_BGT: disable the background thread | ||
125 | * UBI_TST_EMULATE_BITFLIPS: emulate bit-flips | ||
126 | * UBI_TST_EMULATE_WRITE_FAILURES: emulate write failures | ||
127 | * UBI_TST_EMULATE_ERASE_FAILURES: emulate erase failures | ||
128 | */ | ||
129 | enum { | ||
130 | UBI_TST_DISABLE_BGT = 0x1, | ||
131 | UBI_TST_EMULATE_BITFLIPS = 0x2, | ||
132 | UBI_TST_EMULATE_WRITE_FAILURES = 0x4, | ||
133 | UBI_TST_EMULATE_ERASE_FAILURES = 0x8, | ||
134 | }; | ||
135 | |||
136 | /** | ||
137 | * ubi_dbg_is_bgt_disabled - if the background thread is disabled. | ||
138 | * | ||
139 | * Returns non-zero if the UBI background thread is disabled for testing | ||
140 | * purposes. | ||
141 | */ | ||
142 | static inline int ubi_dbg_is_bgt_disabled(void) | ||
143 | { | ||
144 | return ubi_tst_flags & UBI_TST_DISABLE_BGT; | ||
145 | } | ||
124 | 146 | ||
125 | #ifdef CONFIG_MTD_UBI_DEBUG_EMULATE_BITFLIPS | ||
126 | /** | 147 | /** |
127 | * ubi_dbg_is_bitflip - if it is time to emulate a bit-flip. | 148 | * ubi_dbg_is_bitflip - if it is time to emulate a bit-flip. |
128 | * | 149 | * |
@@ -130,13 +151,11 @@ int ubi_dbg_check_write(struct ubi_device *ubi, const void *buf, int pnum, | |||
130 | */ | 151 | */ |
131 | static inline int ubi_dbg_is_bitflip(void) | 152 | static inline int ubi_dbg_is_bitflip(void) |
132 | { | 153 | { |
133 | return !(random32() % 200); | 154 | if (ubi_tst_flags & UBI_TST_EMULATE_BITFLIPS) |
155 | return !(random32() % 200); | ||
156 | return 0; | ||
134 | } | 157 | } |
135 | #else | ||
136 | #define ubi_dbg_is_bitflip() 0 | ||
137 | #endif | ||
138 | 158 | ||
139 | #ifdef CONFIG_MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES | ||
140 | /** | 159 | /** |
141 | * ubi_dbg_is_write_failure - if it is time to emulate a write failure. | 160 | * ubi_dbg_is_write_failure - if it is time to emulate a write failure. |
142 | * | 161 | * |
@@ -145,13 +164,11 @@ static inline int ubi_dbg_is_bitflip(void) | |||
145 | */ | 164 | */ |
146 | static inline int ubi_dbg_is_write_failure(void) | 165 | static inline int ubi_dbg_is_write_failure(void) |
147 | { | 166 | { |
148 | return !(random32() % 500); | 167 | if (ubi_tst_flags & UBI_TST_EMULATE_WRITE_FAILURES) |
168 | return !(random32() % 500); | ||
169 | return 0; | ||
149 | } | 170 | } |
150 | #else | ||
151 | #define ubi_dbg_is_write_failure() 0 | ||
152 | #endif | ||
153 | 171 | ||
154 | #ifdef CONFIG_MTD_UBI_DEBUG_EMULATE_ERASE_FAILURES | ||
155 | /** | 172 | /** |
156 | * ubi_dbg_is_erase_failure - if its time to emulate an erase failure. | 173 | * ubi_dbg_is_erase_failure - if its time to emulate an erase failure. |
157 | * | 174 | * |
@@ -160,11 +177,10 @@ static inline int ubi_dbg_is_write_failure(void) | |||
160 | */ | 177 | */ |
161 | static inline int ubi_dbg_is_erase_failure(void) | 178 | static inline int ubi_dbg_is_erase_failure(void) |
162 | { | 179 | { |
180 | if (ubi_tst_flags & UBI_TST_EMULATE_ERASE_FAILURES) | ||
163 | return !(random32() % 400); | 181 | return !(random32() % 400); |
182 | return 0; | ||
164 | } | 183 | } |
165 | #else | ||
166 | #define ubi_dbg_is_erase_failure() 0 | ||
167 | #endif | ||
168 | 184 | ||
169 | #else | 185 | #else |
170 | 186 | ||
@@ -187,7 +203,7 @@ static inline int ubi_dbg_is_erase_failure(void) | |||
187 | #define ubi_dbg_dump_flash(ubi, pnum, offset, len) ({}) | 203 | #define ubi_dbg_dump_flash(ubi, pnum, offset, len) ({}) |
188 | #define ubi_dbg_print_hex_dump(l, ps, pt, r, g, b, len, a) ({}) | 204 | #define ubi_dbg_print_hex_dump(l, ps, pt, r, g, b, len, a) ({}) |
189 | 205 | ||
190 | #define DBG_DISABLE_BGT 0 | 206 | #define ubi_dbg_is_bgt_disabled() 0 |
191 | #define ubi_dbg_is_bitflip() 0 | 207 | #define ubi_dbg_is_bitflip() 0 |
192 | #define ubi_dbg_is_write_failure() 0 | 208 | #define ubi_dbg_is_write_failure() 0 |
193 | #define ubi_dbg_is_erase_failure() 0 | 209 | #define ubi_dbg_is_erase_failure() 0 |