OSDN Git Service

mtd: tests: stresstest: bail out if device has not enough eraseblocks
authorWolfram Sang <w.sang@pengutronix.de>
Tue, 29 Nov 2011 14:34:08 +0000 (15:34 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 9 Jan 2012 18:12:42 +0000 (18:12 +0000)
commit2f4478ccff7df845dc9c0f8996a96373122c4417
tree5100e886a3feff1c8c826f386be5821b26712baf
parentf99640dee209df4730f35a28b02693affd571ad5
mtd: tests: stresstest: bail out if device has not enough eraseblocks

stresstest needs at least two eraseblocks. Bail out gracefully if that
condition is not met. Fixes the following 'division by zero' OOPS:

[  619.100000] mtd_stresstest: MTD device size 131072, eraseblock size 131072, page size 2048, count of eraseblocks 1, pages per eraseblock 64, OOB size 64
[  619.120000] mtd_stresstest: scanning for bad eraseblocks
[  619.120000] mtd_stresstest: scanned 1 eraseblocks, 0 are bad
[  619.130000] mtd_stresstest: doing operations
[  619.130000] mtd_stresstest: 0 operations done
[  619.140000] Division by zero in kernel.
...

caused by

        /* Read or write up 2 eraseblocks at a time - hence 'ebcnt - 1' */
        eb %= (ebcnt - 1);

Cc: stable@kernel.org
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/tests/mtd_stresstest.c