mtd: tests: nandbiterrs: Fix read_page return value
authorSascha Hauer <s.hauer@pengutronix.de>
Tue, 9 Jan 2018 09:47:02 +0000 (10:47 +0100)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Tue, 9 Jan 2018 09:56:29 +0000 (10:56 +0100)
The number of corrected bitflips is not correctly reported by
the test until the bitflip threshold is reached.

read_page() shall return the number of corrected bitflips, but
mtd_read() returns 0 or a negative error, so we can't forward
its return value. In the absence of an error we always have
calculate the number of bitflips ourselves.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/mtd/tests/nandbiterrs.c

index 5f03b8c885a9cf4daa314f1232e20d262196f78f..cde19c99e77b13c396f2c8f5692aec3f48e0d65e 100644 (file)
@@ -151,7 +151,7 @@ static int read_page(int log)
        memcpy(&oldstats, &mtd->ecc_stats, sizeof(oldstats));
 
        err = mtd_read(mtd, offset, mtd->writesize, &read, rbuffer);
-       if (err == -EUCLEAN)
+       if (!err || err == -EUCLEAN)
                err = mtd->ecc_stats.corrected - oldstats.corrected;
 
        if (err < 0 || read != mtd->writesize) {