diff options
Diffstat (limited to 'drivers/mtd/tests/torturetest.c')
-rw-r--r-- | drivers/mtd/tests/torturetest.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/drivers/mtd/tests/torturetest.c b/drivers/mtd/tests/torturetest.c index b55bc52a1340..e5d6e6d9532f 100644 --- a/drivers/mtd/tests/torturetest.c +++ b/drivers/mtd/tests/torturetest.c | |||
@@ -101,11 +101,11 @@ static inline int check_eraseblock(int ebnum, unsigned char *buf) | |||
101 | { | 101 | { |
102 | int err, retries = 0; | 102 | int err, retries = 0; |
103 | size_t read; | 103 | size_t read; |
104 | loff_t addr = ebnum * mtd->erasesize; | 104 | loff_t addr = (loff_t)ebnum * mtd->erasesize; |
105 | size_t len = mtd->erasesize; | 105 | size_t len = mtd->erasesize; |
106 | 106 | ||
107 | if (pgcnt) { | 107 | if (pgcnt) { |
108 | addr = (ebnum + 1) * mtd->erasesize - pgcnt * pgsize; | 108 | addr = (loff_t)(ebnum + 1) * mtd->erasesize - pgcnt * pgsize; |
109 | len = pgcnt * pgsize; | 109 | len = pgcnt * pgsize; |
110 | } | 110 | } |
111 | 111 | ||
@@ -155,11 +155,11 @@ static inline int write_pattern(int ebnum, void *buf) | |||
155 | { | 155 | { |
156 | int err; | 156 | int err; |
157 | size_t written; | 157 | size_t written; |
158 | loff_t addr = ebnum * mtd->erasesize; | 158 | loff_t addr = (loff_t)ebnum * mtd->erasesize; |
159 | size_t len = mtd->erasesize; | 159 | size_t len = mtd->erasesize; |
160 | 160 | ||
161 | if (pgcnt) { | 161 | if (pgcnt) { |
162 | addr = (ebnum + 1) * mtd->erasesize - pgcnt * pgsize; | 162 | addr = (loff_t)(ebnum + 1) * mtd->erasesize - pgcnt * pgsize; |
163 | len = pgcnt * pgsize; | 163 | len = pgcnt * pgsize; |
164 | } | 164 | } |
165 | err = mtd_write(mtd, addr, len, &written, buf); | 165 | err = mtd_write(mtd, addr, len, &written, buf); |
@@ -279,7 +279,10 @@ static int __init tort_init(void) | |||
279 | " for 0xFF... pattern\n"); | 279 | " for 0xFF... pattern\n"); |
280 | goto out; | 280 | goto out; |
281 | } | 281 | } |
282 | cond_resched(); | 282 | |
283 | err = mtdtest_relax(); | ||
284 | if (err) | ||
285 | goto out; | ||
283 | } | 286 | } |
284 | } | 287 | } |
285 | 288 | ||
@@ -294,7 +297,10 @@ static int __init tort_init(void) | |||
294 | err = write_pattern(i, patt); | 297 | err = write_pattern(i, patt); |
295 | if (err) | 298 | if (err) |
296 | goto out; | 299 | goto out; |
297 | cond_resched(); | 300 | |
301 | err = mtdtest_relax(); | ||
302 | if (err) | ||
303 | goto out; | ||
298 | } | 304 | } |
299 | 305 | ||
300 | /* Verify what we wrote */ | 306 | /* Verify what we wrote */ |
@@ -314,7 +320,10 @@ static int __init tort_init(void) | |||
314 | "0x55AA55..." : "0xAA55AA..."); | 320 | "0x55AA55..." : "0xAA55AA..."); |
315 | goto out; | 321 | goto out; |
316 | } | 322 | } |
317 | cond_resched(); | 323 | |
324 | err = mtdtest_relax(); | ||
325 | if (err) | ||
326 | goto out; | ||
318 | } | 327 | } |
319 | } | 328 | } |
320 | 329 | ||