diff options
Diffstat (limited to 'drivers/mtd/tests/mtd_speedtest.c')
| -rw-r--r-- | drivers/mtd/tests/mtd_speedtest.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mtd/tests/mtd_speedtest.c b/drivers/mtd/tests/mtd_speedtest.c index 141363a7e805..7fbb51d4eabe 100644 --- a/drivers/mtd/tests/mtd_speedtest.c +++ b/drivers/mtd/tests/mtd_speedtest.c | |||
| @@ -301,6 +301,10 @@ static int scan_for_bad_eraseblocks(void) | |||
| 301 | } | 301 | } |
| 302 | memset(bbt, 0 , ebcnt); | 302 | memset(bbt, 0 , ebcnt); |
| 303 | 303 | ||
| 304 | /* NOR flash does not implement block_isbad */ | ||
| 305 | if (mtd->block_isbad == NULL) | ||
| 306 | goto out; | ||
| 307 | |||
| 304 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); | 308 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); |
| 305 | for (i = 0; i < ebcnt; ++i) { | 309 | for (i = 0; i < ebcnt; ++i) { |
| 306 | bbt[i] = is_block_bad(i) ? 1 : 0; | 310 | bbt[i] = is_block_bad(i) ? 1 : 0; |
| @@ -309,6 +313,7 @@ static int scan_for_bad_eraseblocks(void) | |||
| 309 | cond_resched(); | 313 | cond_resched(); |
| 310 | } | 314 | } |
| 311 | printk(PRINT_PREF "scanned %d eraseblocks, %d are bad\n", i, bad); | 315 | printk(PRINT_PREF "scanned %d eraseblocks, %d are bad\n", i, bad); |
| 316 | out: | ||
| 312 | goodebcnt = ebcnt - bad; | 317 | goodebcnt = ebcnt - bad; |
| 313 | return 0; | 318 | return 0; |
| 314 | } | 319 | } |
| @@ -340,7 +345,7 @@ static int __init mtd_speedtest_init(void) | |||
| 340 | tmp = mtd->size; | 345 | tmp = mtd->size; |
| 341 | do_div(tmp, mtd->erasesize); | 346 | do_div(tmp, mtd->erasesize); |
| 342 | ebcnt = tmp; | 347 | ebcnt = tmp; |
| 343 | pgcnt = mtd->erasesize / mtd->writesize; | 348 | pgcnt = mtd->erasesize / pgsize; |
| 344 | 349 | ||
| 345 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " | 350 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " |
| 346 | "page size %u, count of eraseblocks %u, pages per " | 351 | "page size %u, count of eraseblocks %u, pages per " |
