public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH] MTD: treat any negative return value from correct() as an error
@ 2007-10-17 21:33 mattjreimer
  2007-10-20 10:42 ` Jörn Engel
  0 siblings, 1 reply; 12+ messages in thread
From: mattjreimer @ 2007-10-17 21:33 UTC (permalink / raw)
  To: linux-mtd; +Cc: Matt Reimer

From: Matt Reimer <mreimer@vpop.net>

Treat any negative return value from a NAND driver's correct() function
as a failure, rather than just -1. Some drivers (e.g. diskonchip) can
return error values such as -EIO, which ended up being treated as the
number of bits corrected, which in turn resulted in nand_do_read_ops()
returning -EUCLEAN rather than -EBADMSG.

Signed-off-by: Matt Reimer <mreimer@vpop.net>
---
 drivers/mtd/nand/nand_base.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 24ac677..6d40edf 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -789,7 +789,7 @@ static int nand_read_page_swecc(struct mtd_info *mtd, struct nand_chip *chip,
 		int stat;
 
 		stat = chip->ecc.correct(mtd, p, &ecc_code[i], &ecc_calc[i]);
-		if (stat == -1)
+		if (stat < 0)
 			mtd->ecc_stats.failed++;
 		else
 			mtd->ecc_stats.corrected += stat;
@@ -833,7 +833,7 @@ static int nand_read_page_hwecc(struct mtd_info *mtd, struct nand_chip *chip,
 		int stat;
 
 		stat = chip->ecc.correct(mtd, p, &ecc_code[i], &ecc_calc[i]);
-		if (stat == -1)
+		if (stat < 0)
 			mtd->ecc_stats.failed++;
 		else
 			mtd->ecc_stats.corrected += stat;
@@ -874,7 +874,7 @@ static int nand_read_page_syndrome(struct mtd_info *mtd, struct nand_chip *chip,
 		chip->read_buf(mtd, oob, eccbytes);
 		stat = chip->ecc.correct(mtd, p, oob, NULL);
 
-		if (stat == -1)
+		if (stat < 0)
 			mtd->ecc_stats.failed++;
 		else
 			mtd->ecc_stats.corrected += stat;
-- 
1.5.3.2

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2007-10-21 11:02 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-17 21:33 [PATCH] MTD: treat any negative return value from correct() as an error mattjreimer
2007-10-20 10:42 ` Jörn Engel
2007-10-20 11:11   ` [PATCH] BUG() when passing illegal parameters to decode_rs8() or decode_rs16() Jörn Engel
2007-10-20 11:13     ` [PATCH] Replace -1 with -EBADMSG in nand error correction code Jörn Engel
2007-10-21  8:08       ` Thomas Gleixner
2007-10-21  8:42         ` Jörn Engel
2007-10-21  8:04     ` [PATCH] BUG() when passing illegal parameters to decode_rs8() or decode_rs16() Thomas Gleixner
2007-10-21  8:06     ` Thomas Gleixner
2007-10-21  8:48       ` Jörn Engel
2007-10-20 16:37   ` [PATCH] MTD: treat any negative return value from correct() as an error Matt Reimer
2007-10-20 17:40     ` Jörn Engel
2007-10-20 17:59       ` Matthew Reimer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox