staticint verify_all_eraseblocks_ff(void)
{ int err; unsignedint i;
pr_info("verifying all eraseblocks for 0xff\n"); for (i = 0; i < ebcnt; ++i) { if (bbt[i]) continue;
err = verify_eraseblock_ff(i); if (err) return err; if (i % 256 == 0)
pr_info("verified up to eraseblock %u\n", i);
if (dev < 0) {
pr_info("Please specify a valid mtd-device via module parameter\n");
pr_crit("CAREFUL: This test wipes all data on the specified MTD device!\n"); return -EINVAL;
}
pr_info("MTD device: %d\n", dev);
mtd = get_mtd_device(NULL, dev); if (IS_ERR(mtd)) {
err = PTR_ERR(mtd);
pr_err("error: cannot get MTD device\n"); return err;
}
if (!mtd_type_is_nand(mtd)) {
pr_info("this test requires NAND flash\n"); goto out;
}
err = mtdtest_scan_for_bad_eraseblocks(mtd, bbt, 0, ebcnt); if (err) goto out;
err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); if (err) goto out;
pr_info("writing whole device\n");
prandom_seed_state(&rnd_state, 1); for (i = 0; i < ebcnt; ++i) { if (bbt[i]) continue;
err = write_eraseblock(i); if (unlikely(err)) goto out; if (i % 256 == 0)
pr_info("written up to eraseblock %u\n", i);
prandom_seed_state(&rnd_state, 1);
pr_info("verifying all eraseblocks\n"); for (i = 0; i < ebcnt; ++i) { if (bbt[i]) continue;
err = verify_eraseblock(i); if (unlikely(err)) goto out; if (i % 256 == 0)
pr_info("verified up to eraseblock %u\n", i);
err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); if (err) goto out;
err = verify_all_eraseblocks_ff(); if (err) goto out;
/* Write all eraseblocks */
prandom_seed_state(&rnd_state, 3);
pr_info("writing whole device\n"); for (i = 0; i < ebcnt; ++i) { if (bbt[i]) continue;
err = write_eraseblock2(i); if (unlikely(err)) goto out; if (i % 256 == 0)
pr_info("written up to eraseblock %u\n", i);
/* Check all eraseblocks */
prandom_seed_state(&rnd_state, 3);
pr_info("verifying all eraseblocks\n"); for (i = 0; i < ebcnt; ++i) { if (bbt[i]) continue;
err = verify_eraseblock2(i); if (unlikely(err)) goto out; if (i % 256 == 0)
pr_info("verified up to eraseblock %u\n", i);
MODULE_DESCRIPTION("Subpage test module");
MODULE_AUTHOR("Adrian Hunter");
MODULE_LICENSE("GPL");
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.1Bemerkung:
(vorverarbeitet am 2026-04-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.