public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH] MTD: OneNAND: Return only negative error codes
@ 2007-10-12  7:19 Adrian Hunter
  2007-10-12  9:30 ` Kyungmin Park
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Hunter @ 2007-10-12  7:19 UTC (permalink / raw)
  To: ext Kyungmin Park; +Cc: linux-mtd

The OneNAND driver was confusing JFFS2 by returning positive error
codes.

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
---
 drivers/mtd/onenand/onenand_base.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index f633941..a8c426b 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -327,7 +327,7 @@ static int onenand_wait(struct mtd_info *mtd, int state)
 		printk(KERN_ERR "onenand_wait: controller error = 0x%04x\n", ctrl);
 		if (ctrl & ONENAND_CTRL_LOCK)
 			printk(KERN_ERR "onenand_wait: it's locked error.\n");
-		return ctrl;
+		return -EIO;
 	}
 
 	if (interrupt & ONENAND_INT_READ) {
@@ -336,7 +336,7 @@ static int onenand_wait(struct mtd_info *mtd, int state)
 			if (ecc & ONENAND_ECC_2BIT_ALL) {
 				printk(KERN_ERR "onenand_wait: ECC error = 0x%04x\n", ecc);
 				mtd->ecc_stats.failed++;
-				return ecc;
+				return -EBADMSG;
 			} else if (ecc & ONENAND_ECC_1BIT_ALL) {
 				printk(KERN_INFO "onenand_wait: correctable ECC error = 0x%04x\n", ecc);
 				mtd->ecc_stats.corrected++;
-- 
1.4.4.2

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

* RE: [PATCH] MTD: OneNAND: Return only negative error codes
  2007-10-12  7:19 [PATCH] MTD: OneNAND: Return only negative error codes Adrian Hunter
@ 2007-10-12  9:30 ` Kyungmin Park
  2007-10-14  8:14   ` Artem Bityutskiy
  0 siblings, 1 reply; 3+ messages in thread
From: Kyungmin Park @ 2007-10-12  9:30 UTC (permalink / raw)
  To: 'Adrian Hunter'; +Cc: linux-mtd

> The OneNAND driver was confusing JFFS2 by returning positive error
> codes.

It's only possible the write case error and it returns the positive 'ctrl' error.
Other case, "2-bit ecc error' is handled with 'mtd->ecc_stat' correctly.

Well, no problem to change to the negative value.

Acked-by: Kyungmin Park <kyungmin.park@samsung.com>

> 
> ---
>  drivers/mtd/onenand/onenand_base.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
> index f633941..a8c426b 100644
> --- a/drivers/mtd/onenand/onenand_base.c
> +++ b/drivers/mtd/onenand/onenand_base.c
> @@ -327,7 +327,7 @@ static int onenand_wait(struct mtd_info *mtd, int state)
>  		printk(KERN_ERR "onenand_wait: controller error = 0x%04x\n", ctrl);
>  		if (ctrl & ONENAND_CTRL_LOCK)
>  			printk(KERN_ERR "onenand_wait: it's locked error.\n");
> -		return ctrl;
> +		return -EIO;
>  	}
> 
>  	if (interrupt & ONENAND_INT_READ) {
> @@ -336,7 +336,7 @@ static int onenand_wait(struct mtd_info *mtd, int state)
>  			if (ecc & ONENAND_ECC_2BIT_ALL) {
>  				printk(KERN_ERR "onenand_wait: ECC error = 0x%04x\n", ecc);
>  				mtd->ecc_stats.failed++;
> -				return ecc;
> +				return -EBADMSG;
>  			} else if (ecc & ONENAND_ECC_1BIT_ALL) {
>  				printk(KERN_INFO "onenand_wait: correctable ECC error = 0x%04x\n", ecc);
>  				mtd->ecc_stats.corrected++;
> --
> 1.4.4.2

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

* RE: [PATCH] MTD: OneNAND: Return only negative error codes
  2007-10-12  9:30 ` Kyungmin Park
@ 2007-10-14  8:14   ` Artem Bityutskiy
  0 siblings, 0 replies; 3+ messages in thread
From: Artem Bityutskiy @ 2007-10-14  8:14 UTC (permalink / raw)
  To: kmpark; +Cc: linux-mtd, 'Adrian Hunter'

On Fri, 2007-10-12 at 18:30 +0900, Kyungmin Park wrote:
> > The OneNAND driver was confusing JFFS2 by returning positive error
> > codes.
> 
> It's only possible the write case error and it returns the positive 'ctrl' error.
> Other case, "2-bit ecc error' is handled with 'mtd->ecc_stat' correctly.
> 
> Well, no problem to change to the negative value.
> 
> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>

Yeah, it's rare but we caught this in practice, and JFFS2 just calls
BUG() if OneNAND returns positive number while JFFS2 is scanning the
flash medium.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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

end of thread, other threads:[~2007-10-14  8:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-12  7:19 [PATCH] MTD: OneNAND: Return only negative error codes Adrian Hunter
2007-10-12  9:30 ` Kyungmin Park
2007-10-14  8:14   ` Artem Bityutskiy

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