diff options
Diffstat (limited to 'drivers/mtd/tests/mtd_readtest.c')
-rw-r--r-- | drivers/mtd/tests/mtd_readtest.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mtd/tests/mtd_readtest.c b/drivers/mtd/tests/mtd_readtest.c index 79fc4530987b..7107fccbc7de 100644 --- a/drivers/mtd/tests/mtd_readtest.c +++ b/drivers/mtd/tests/mtd_readtest.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/moduleparam.h> | 24 | #include <linux/moduleparam.h> |
25 | #include <linux/err.h> | 25 | #include <linux/err.h> |
26 | #include <linux/mtd/mtd.h> | 26 | #include <linux/mtd/mtd.h> |
27 | #include <linux/slab.h> | ||
27 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
28 | 29 | ||
29 | #define PRINT_PREF KERN_INFO "mtd_readtest: " | 30 | #define PRINT_PREF KERN_INFO "mtd_readtest: " |
@@ -147,6 +148,10 @@ static int scan_for_bad_eraseblocks(void) | |||
147 | } | 148 | } |
148 | memset(bbt, 0 , ebcnt); | 149 | memset(bbt, 0 , ebcnt); |
149 | 150 | ||
151 | /* NOR flash does not implement block_isbad */ | ||
152 | if (mtd->block_isbad == NULL) | ||
153 | return 0; | ||
154 | |||
150 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); | 155 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); |
151 | for (i = 0; i < ebcnt; ++i) { | 156 | for (i = 0; i < ebcnt; ++i) { |
152 | bbt[i] = is_block_bad(i) ? 1 : 0; | 157 | bbt[i] = is_block_bad(i) ? 1 : 0; |
@@ -184,7 +189,7 @@ static int __init mtd_readtest_init(void) | |||
184 | tmp = mtd->size; | 189 | tmp = mtd->size; |
185 | do_div(tmp, mtd->erasesize); | 190 | do_div(tmp, mtd->erasesize); |
186 | ebcnt = tmp; | 191 | ebcnt = tmp; |
187 | pgcnt = mtd->erasesize / mtd->writesize; | 192 | pgcnt = mtd->erasesize / pgsize; |
188 | 193 | ||
189 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " | 194 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " |
190 | "page size %u, count of eraseblocks %u, pages per " | 195 | "page size %u, count of eraseblocks %u, pages per " |