提交 8a9f4aa3 编写于 作者: A Akinobu Mita 提交者: David Woodhouse

mtd: tests: incorporate error message for mtdtest_write()

All callers of mtdtest_write() print the same error message on failure.
This incorporates the error message to mtdtest_write() and removes them
from the callers.
Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
上级 abc173ad
......@@ -107,6 +107,8 @@ int mtdtest_write(struct mtd_info *mtd, loff_t addr, size_t size,
err = mtd_write(mtd, addr, size, &written, buf);
if (!err && written != size)
err = -EIO;
if (err)
pr_err("error: write failed at %#llx\n", addr);
return err;
}
......@@ -102,16 +102,10 @@ static uint8_t hash(unsigned offset)
/* Writes wbuffer to page */
static int write_page(int log)
{
int err;
if (log)
pr_info("write_page\n");
err = mtdtest_write(mtd, offset, mtd->writesize, wbuffer);
if (err)
pr_err("error: write failed at %#llx\n", (long long)offset);
return err;
return mtdtest_write(mtd, offset, mtd->writesize, wbuffer);
}
/* Re-writes the data area while leaving the OOB alone. */
......
......@@ -52,17 +52,11 @@ static struct rnd_state rnd_state;
static int write_eraseblock(int ebnum)
{
int err;
loff_t addr = ebnum * mtd->erasesize;
prandom_bytes_state(&rnd_state, writebuf, mtd->erasesize);
cond_resched();
err = mtdtest_write(mtd, addr, mtd->erasesize, writebuf);
if (err)
pr_err("error: write failed at %#llx\n",
(long long)addr);
return err;
return mtdtest_write(mtd, addr, mtd->erasesize, writebuf);
}
static int verify_eraseblock(int ebnum)
......@@ -232,11 +226,8 @@ static int erasecrosstest(void)
prandom_bytes_state(&rnd_state, writebuf, pgsize);
strcpy(writebuf, "There is no data like this!");
err = mtdtest_write(mtd, addr0, pgsize, writebuf);
if (err) {
pr_info("error: write failed at %#llx\n",
(long long)addr0);
if (err)
return err;
}
pr_info("reading 1st page of block %d\n", ebnum);
memset(readbuf, 0, pgsize);
......@@ -260,11 +251,8 @@ static int erasecrosstest(void)
prandom_bytes_state(&rnd_state, writebuf, pgsize);
strcpy(writebuf, "There is no data like this!");
err = mtdtest_write(mtd, addr0, pgsize, writebuf);
if (err) {
pr_err("error: write failed at %#llx\n",
(long long)addr0);
if (err)
return err;
}
pr_info("erasing block %d\n", ebnum2);
err = mtdtest_erase_eraseblock(mtd, ebnum2);
......@@ -311,11 +299,8 @@ static int erasetest(void)
pr_info("writing 1st page of block %d\n", ebnum);
prandom_bytes_state(&rnd_state, writebuf, pgsize);
err = mtdtest_write(mtd, addr0, pgsize, writebuf);
if (err) {
pr_err("error: write failed at %#llx\n",
(long long)addr0);
if (err)
return err;
}
pr_info("erasing block %d\n", ebnum);
err = mtdtest_erase_eraseblock(mtd, ebnum);
......
......@@ -80,14 +80,9 @@ static int multiblock_erase(int ebnum, int blocks)
static int write_eraseblock(int ebnum)
{
int err;
loff_t addr = ebnum * mtd->erasesize;
err = mtdtest_write(mtd, addr, mtd->erasesize, iobuf);
if (err)
pr_err("error: write failed at %#llx\n", addr);
return err;
return mtdtest_write(mtd, addr, mtd->erasesize, iobuf);
}
static int write_eraseblock_by_page(int ebnum)
......@@ -98,11 +93,8 @@ static int write_eraseblock_by_page(int ebnum)
for (i = 0; i < pgcnt; i++) {
err = mtdtest_write(mtd, addr, pgsize, buf);
if (err) {
pr_err("error: write failed at %#llx\n",
addr);
if (err)
break;
}
addr += pgsize;
buf += pgsize;
}
......@@ -119,21 +111,13 @@ static int write_eraseblock_by_2pages(int ebnum)
for (i = 0; i < n; i++) {
err = mtdtest_write(mtd, addr, sz, buf);
if (err) {
pr_err("error: write failed at %#llx\n",
addr);
if (err)
return err;
}
addr += sz;
buf += sz;
}
if (pgcnt % 2) {
if (pgcnt % 2)
err = mtdtest_write(mtd, addr, pgsize, buf);
if (err) {
pr_err("error: write failed at %#llx\n",
addr);
}
}
return err;
}
......
......@@ -126,11 +126,8 @@ static int do_write(void)
}
addr = eb * mtd->erasesize + offs;
err = mtdtest_write(mtd, addr, len, writebuf);
if (unlikely(err)) {
pr_err("error: write failed at 0x%llx\n",
(long long)addr);
if (unlikely(err))
return err;
}
offs += len;
while (offs > mtd->erasesize) {
offsets[eb++] = mtd->erasesize;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册