diff options
author | Adrian Hunter <adrian.hunter@nokia.com> | 2011-02-08 12:02:39 +0200 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2011-03-11 14:22:45 +0000 |
commit | fc7fe7691c6bbd5f8f51a87e759770975c648410 (patch) | |
tree | 131c8868bc2f17e3a91e3d077bf04b22a9ac8b3d | |
parent | e6da85685b2dec1e69e58366c22d1f883d6da575 (diff) |
mtd: tests: add count parameter to mtd_speedtest
By default mtd_speedtest uses all the eraseblocks of the
MTD partition being tested. For large partitions a
smaller number is sufficient and makes running the test
quicker. For that reason, add a parameter 'count' to
specify the maximum number of eraseblocks to use for
testing.
Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r-- | drivers/mtd/tests/mtd_speedtest.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/mtd/tests/mtd_speedtest.c b/drivers/mtd/tests/mtd_speedtest.c index 161feeb7b8b9..9bd986ef3b53 100644 --- a/drivers/mtd/tests/mtd_speedtest.c +++ b/drivers/mtd/tests/mtd_speedtest.c @@ -16,7 +16,7 @@ * * Test read and write speed of a MTD device. * - * Author: Adrian Hunter <ext-adrian.hunter@nokia.com> + * Author: Adrian Hunter <adrian.hunter@nokia.com> */ #include <linux/init.h> @@ -33,6 +33,11 @@ static int dev; module_param(dev, int, S_IRUGO); MODULE_PARM_DESC(dev, "MTD device number to use"); +static int count; +module_param(count, int, S_IRUGO); +MODULE_PARM_DESC(count, "Maximum number of eraseblocks to use " + "(0 means use all)"); + static struct mtd_info *mtd; static unsigned char *iobuf; static unsigned char *bbt; @@ -326,7 +331,10 @@ static int __init mtd_speedtest_init(void) printk(KERN_INFO "\n"); printk(KERN_INFO "=================================================\n"); - printk(PRINT_PREF "MTD device: %d\n", dev); + if (count) + printk(PRINT_PREF "MTD device: %d count: %d\n", dev, count); + else + printk(PRINT_PREF "MTD device: %d\n", dev); mtd = get_mtd_device(NULL, dev); if (IS_ERR(mtd)) { @@ -353,6 +361,9 @@ static int __init mtd_speedtest_init(void) (unsigned long long)mtd->size, mtd->erasesize, pgsize, ebcnt, pgcnt, mtd->oobsize); + if (count > 0 && count < ebcnt) + ebcnt = count; + err = -ENOMEM; iobuf = kmalloc(mtd->erasesize, GFP_KERNEL); if (!iobuf) { |