Index: mtd_speedtest.c =================================================================== RCS file: /home/cvsroot/ECMB/src/snapgear/linux-2.6.30.1.x/drivers/mtd/tests/mtd_speedtest.c,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 mtd_speedtest.c --- mtd_speedtest.c 10 Aug 2009 19:42:00 -0000 1.1.1.1 +++ mtd_speedtest.c 4 Mar 2011 17:51:23 -0000 @@ -281,13 +281,14 @@ static long calc_speed(void) { - long ms, k, speed; + uint64_t k; + long ms; - ms = (finish.tv_sec - start.tv_sec) * 1000 + - (finish.tv_usec - start.tv_usec) / 1000; - k = goodebcnt * mtd->erasesize / 1024; - speed = (k * 1000) / ms; - return speed; + ms = (finish.tv_sec - start.tv_sec) * 1000 + /* Time in milli-seconds from start to ...*/ + (finish.tv_usec - start.tv_usec) / 1000; /* finish */ + k = (goodebcnt * (mtd->erasesize / 1024) * 1000); /* Number of kBytes transferred * 1000 */ + do_div(k, ms); /* k now contains number of kBytes/second */ + return k; } static int scan_for_bad_eraseblocks(void)