aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/tests/torturetest.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/tests/torturetest.c')
-rw-r--r--drivers/mtd/tests/torturetest.c23
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