diff options
Diffstat (limited to 'drivers/mtd/tests/speedtest.c')
-rw-r--r-- | drivers/mtd/tests/speedtest.c | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/drivers/mtd/tests/speedtest.c b/drivers/mtd/tests/speedtest.c index 5ee9f7021020..5a6f31af06f9 100644 --- a/drivers/mtd/tests/speedtest.c +++ b/drivers/mtd/tests/speedtest.c | |||
@@ -185,7 +185,7 @@ static long calc_speed(void) | |||
185 | (finish.tv_usec - start.tv_usec) / 1000; | 185 | (finish.tv_usec - start.tv_usec) / 1000; |
186 | if (ms == 0) | 186 | if (ms == 0) |
187 | return 0; | 187 | return 0; |
188 | k = goodebcnt * (mtd->erasesize / 1024) * 1000; | 188 | k = (uint64_t)goodebcnt * (mtd->erasesize / 1024) * 1000; |
189 | do_div(k, ms); | 189 | do_div(k, ms); |
190 | return k; | 190 | return k; |
191 | } | 191 | } |
@@ -269,7 +269,10 @@ static int __init mtd_speedtest_init(void) | |||
269 | err = write_eraseblock(i); | 269 | err = write_eraseblock(i); |
270 | if (err) | 270 | if (err) |
271 | goto out; | 271 | goto out; |
272 | cond_resched(); | 272 | |
273 | err = mtdtest_relax(); | ||
274 | if (err) | ||
275 | goto out; | ||
273 | } | 276 | } |
274 | stop_timing(); | 277 | stop_timing(); |
275 | speed = calc_speed(); | 278 | speed = calc_speed(); |
@@ -284,7 +287,10 @@ static int __init mtd_speedtest_init(void) | |||
284 | err = read_eraseblock(i); | 287 | err = read_eraseblock(i); |
285 | if (err) | 288 | if (err) |
286 | goto out; | 289 | goto out; |
287 | cond_resched(); | 290 | |
291 | err = mtdtest_relax(); | ||
292 | if (err) | ||
293 | goto out; | ||
288 | } | 294 | } |
289 | stop_timing(); | 295 | stop_timing(); |
290 | speed = calc_speed(); | 296 | speed = calc_speed(); |
@@ -303,7 +309,10 @@ static int __init mtd_speedtest_init(void) | |||
303 | err = write_eraseblock_by_page(i); | 309 | err = write_eraseblock_by_page(i); |
304 | if (err) | 310 | if (err) |
305 | goto out; | 311 | goto out; |
306 | cond_resched(); | 312 | |
313 | err = mtdtest_relax(); | ||
314 | if (err) | ||
315 | goto out; | ||
307 | } | 316 | } |
308 | stop_timing(); | 317 | stop_timing(); |
309 | speed = calc_speed(); | 318 | speed = calc_speed(); |
@@ -318,7 +327,10 @@ static int __init mtd_speedtest_init(void) | |||
318 | err = read_eraseblock_by_page(i); | 327 | err = read_eraseblock_by_page(i); |
319 | if (err) | 328 | if (err) |
320 | goto out; | 329 | goto out; |
321 | cond_resched(); | 330 | |
331 | err = mtdtest_relax(); | ||
332 | if (err) | ||
333 | goto out; | ||
322 | } | 334 | } |
323 | stop_timing(); | 335 | stop_timing(); |
324 | speed = calc_speed(); | 336 | speed = calc_speed(); |
@@ -337,7 +349,10 @@ static int __init mtd_speedtest_init(void) | |||
337 | err = write_eraseblock_by_2pages(i); | 349 | err = write_eraseblock_by_2pages(i); |
338 | if (err) | 350 | if (err) |
339 | goto out; | 351 | goto out; |
340 | cond_resched(); | 352 | |
353 | err = mtdtest_relax(); | ||
354 | if (err) | ||
355 | goto out; | ||
341 | } | 356 | } |
342 | stop_timing(); | 357 | stop_timing(); |
343 | speed = calc_speed(); | 358 | speed = calc_speed(); |
@@ -352,7 +367,10 @@ static int __init mtd_speedtest_init(void) | |||
352 | err = read_eraseblock_by_2pages(i); | 367 | err = read_eraseblock_by_2pages(i); |
353 | if (err) | 368 | if (err) |
354 | goto out; | 369 | goto out; |
355 | cond_resched(); | 370 | |
371 | err = mtdtest_relax(); | ||
372 | if (err) | ||
373 | goto out; | ||
356 | } | 374 | } |
357 | stop_timing(); | 375 | stop_timing(); |
358 | speed = calc_speed(); | 376 | speed = calc_speed(); |
@@ -385,7 +403,11 @@ static int __init mtd_speedtest_init(void) | |||
385 | err = multiblock_erase(i, j); | 403 | err = multiblock_erase(i, j); |
386 | if (err) | 404 | if (err) |
387 | goto out; | 405 | goto out; |
388 | cond_resched(); | 406 | |
407 | err = mtdtest_relax(); | ||
408 | if (err) | ||
409 | goto out; | ||
410 | |||
389 | i += j; | 411 | i += j; |
390 | } | 412 | } |
391 | stop_timing(); | 413 | stop_timing(); |