* [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
2007-10-19 1:02 [PATCH] MTD: fix s3c2410 error correction Matt Reimer
@ 2007-10-19 1:02 ` Matt Reimer
0 siblings, 0 replies; 10+ messages in thread
From: Matt Reimer @ 2007-10-19 1:02 UTC (permalink / raw)
To: linux-mtd; +Cc: Matt Reimer
From: Matt Reimer <mreimer@vpop.net>
If there were multiple bit errors in the data s3c2410_nand_correct_data()
was returning 0 (no error) instead of -1, so the upper layers (like JFFS2)
would not know the data is corrupt.
Signed-off-by: Matt Reimer <mreimer@vpop.net>
---
drivers/mtd/nand/s3c2410.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index 077fdcc..2e6b435 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct mtd_info *mtd, u_char *dat,
if ((diff0 & ~(1<<fls(diff0))) == 0)
return 1;
- return 0;
+ return -1;
}
/* ECC functions
--
1.5.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
@ 2007-10-19 1:13 Matt Reimer
2007-10-19 8:24 ` Jörn Engel
0 siblings, 1 reply; 10+ messages in thread
From: Matt Reimer @ 2007-10-19 1:13 UTC (permalink / raw)
To: linux-mtd
If there were multiple bit errors in the data s3c2410_nand_correct_data()
was returning 0 (no error) instead of -1, so the upper layers (like JFFS2)
would not know the data is corrupt.
Signed-off-by: Matt Reimer <mreimer@vpop.net>
---
drivers/mtd/nand/s3c2410.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index 077fdcc..2e6b435 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct
mtd_info *mtd, u_char *dat,
if ((diff0 & ~(1<<fls(diff0))) == 0)
return 1;
- return 0;
+ return -1;
}
/* ECC functions
--
1.5.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
2007-10-19 1:13 [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors Matt Reimer
@ 2007-10-19 8:24 ` Jörn Engel
2007-10-19 9:00 ` Artem Bityutskiy
0 siblings, 1 reply; 10+ messages in thread
From: Jörn Engel @ 2007-10-19 8:24 UTC (permalink / raw)
To: Matt Reimer; +Cc: linux-mtd
On Thu, 18 October 2007 18:13:07 -0700, Matt Reimer wrote:
>
> If there were multiple bit errors in the data s3c2410_nand_correct_data()
> was returning 0 (no error) instead of -1, so the upper layers (like JFFS2)
> would not know the data is corrupt.
>
> Signed-off-by: Matt Reimer <mreimer@vpop.net>
> ---
> drivers/mtd/nand/s3c2410.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
> index 077fdcc..2e6b435 100644
> --- a/drivers/mtd/nand/s3c2410.c
> +++ b/drivers/mtd/nand/s3c2410.c
> @@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct
> mtd_info *mtd, u_char *dat,
> if ((diff0 & ~(1<<fls(diff0))) == 0)
> return 1;
>
> - return 0;
> + return -1;
> }
Why don't you return -EBADMSG?
Jörn
--
I can say that I spend most of my time fixing bugs even if I have lots
of new features to implement in mind, but I give bugs more priority.
-- Andrea Arcangeli, 2000
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
2007-10-19 8:24 ` Jörn Engel
@ 2007-10-19 9:00 ` Artem Bityutskiy
2007-10-19 19:29 ` Matt Reimer
0 siblings, 1 reply; 10+ messages in thread
From: Artem Bityutskiy @ 2007-10-19 9:00 UTC (permalink / raw)
To: Jörn Engel; +Cc: linux-mtd, Matt Reimer
On Fri, 2007-10-19 at 10:24 +0200, Jörn Engel wrote:
> > @@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct
> > mtd_info *mtd, u_char *dat,
> > if ((diff0 & ~(1<<fls(diff0))) == 0)
> > return 1;
> >
> > - return 0;
> > + return -1;
> > }
Yup, Jörn is right, you should return -EBADMSG on ECC errors and
-EUCLEAN if there was a correctable bit-flip.
--
Best regards,
Artem Bityutskiy (Битюцкий Артём)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
2007-10-19 9:00 ` Artem Bityutskiy
@ 2007-10-19 19:29 ` Matt Reimer
2007-10-20 10:28 ` Jörn Engel
0 siblings, 1 reply; 10+ messages in thread
From: Matt Reimer @ 2007-10-19 19:29 UTC (permalink / raw)
To: dedekind; +Cc: Jörn Engel, linux-mtd
On 10/19/07, Artem Bityutskiy <dedekind@infradead.org> wrote:
> On Fri, 2007-10-19 at 10:24 +0200, Jörn Engel wrote:
> > > @@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct
> > > mtd_info *mtd, u_char *dat,
> > > if ((diff0 & ~(1<<fls(diff0))) == 0)
> > > return 1;
> > >
> > > - return 0;
> > > + return -1;
> > > }
>
> Yup, Jörn is right, you should return -EBADMSG on ECC errors and
> -EUCLEAN if there was a correctable bit-flip.
See the patch I posted a couple of days ago with the subject "MTD:
treat any negative return value from correct() as an error". Once that
patch is accepted, doing what you say will work as you expect; right
now, it results in lying to upper layers about errors.
Matt
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
2007-10-19 19:29 ` Matt Reimer
@ 2007-10-20 10:28 ` Jörn Engel
0 siblings, 0 replies; 10+ messages in thread
From: Jörn Engel @ 2007-10-20 10:28 UTC (permalink / raw)
To: Matt Reimer; +Cc: Jörn Engel, linux-mtd
On Fri, 19 October 2007 12:29:45 -0700, Matt Reimer wrote:
>
> See the patch I posted a couple of days ago with the subject "MTD:
> treat any negative return value from correct() as an error". Once that
> patch is accepted, doing what you say will work as you expect; right
> now, it results in lying to upper layers about errors.
I'll comment to that patch seperately. This one is
Acked-By: Joern Engel <joern@logfs.org>
Jörn
--
It does not matter how slowly you go, so long as you do not stop.
-- Confucius
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
@ 2007-10-20 16:44 Matt Reimer
2007-10-20 16:49 ` Matt Reimer
0 siblings, 1 reply; 10+ messages in thread
From: Matt Reimer @ 2007-10-20 16:44 UTC (permalink / raw)
To: linux-mtd; +Cc: Matt Reimer
From: Matt Reimer <mreimer@vpop.net>
If there were multiple bit errors in the data s3c2410_nand_correct_data()
was returning 0 (no error) instead of -1, so the upper layers (like JFFS2)
would not know the data is corrupt.
Signed-off-by: Matt Reimer <mreimer@vpop.net>
---
drivers/mtd/nand/s3c2410.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index 077fdcc..1aa3a18 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct mtd_info *mtd, u_char *dat,
if ((diff0 & ~(1<<fls(diff0))) == 0)
return 1;
- return 0;
+ return -EBADMSG;
}
/* ECC functions
--
1.5.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
@ 2007-10-20 16:48 Matt Reimer
2007-10-25 18:12 ` Matt Reimer
0 siblings, 1 reply; 10+ messages in thread
From: Matt Reimer @ 2007-10-20 16:48 UTC (permalink / raw)
To: linux-mtd; +Cc: Matt Reimer
From: Matt Reimer <mreimer@vpop.net>
If there were multiple bit errors in the data s3c2410_nand_correct_data()
was returning 0 (no error) instead of -EBADMSG, so the upper layers
(like JFFS2) would not know the data is corrupt.
Signed-off-by: Matt Reimer <mreimer@vpop.net>
---
drivers/mtd/nand/s3c2410.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index 077fdcc..1aa3a18 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct mtd_info *mtd, u_char *dat,
if ((diff0 & ~(1<<fls(diff0))) == 0)
return 1;
- return 0;
+ return -EBADMSG;
}
/* ECC functions
--
1.5.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
2007-10-20 16:44 Matt Reimer
@ 2007-10-20 16:49 ` Matt Reimer
0 siblings, 0 replies; 10+ messages in thread
From: Matt Reimer @ 2007-10-20 16:49 UTC (permalink / raw)
To: linux-mtd; +Cc: Matt Reimer
On 10/20/07, Matt Reimer <mattjreimer@gmail.com> wrote:
> From: Matt Reimer <mreimer@vpop.net>
>
> If there were multiple bit errors in the data s3c2410_nand_correct_data()
> was returning 0 (no error) instead of -1, so the upper layers (like JFFS2)
> would not know the data is corrupt.
Grr, ignore this patch, as I forget to amend the commit message. The
next one should get it right.
Matt
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors
2007-10-20 16:48 Matt Reimer
@ 2007-10-25 18:12 ` Matt Reimer
0 siblings, 0 replies; 10+ messages in thread
From: Matt Reimer @ 2007-10-25 18:12 UTC (permalink / raw)
To: linux-mtd
Anyone willing to ACK this patch?
Matt
On 10/20/07, Matt Reimer <mattjreimer@gmail.com> wrote:
> From: Matt Reimer <mreimer@vpop.net>
>
> If there were multiple bit errors in the data s3c2410_nand_correct_data()
> was returning 0 (no error) instead of -EBADMSG, so the upper layers
> (like JFFS2) would not know the data is corrupt.
>
> Signed-off-by: Matt Reimer <mreimer@vpop.net>
> ---
> drivers/mtd/nand/s3c2410.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
> index 077fdcc..1aa3a18 100644
> --- a/drivers/mtd/nand/s3c2410.c
> +++ b/drivers/mtd/nand/s3c2410.c
> @@ -397,7 +397,7 @@ static int s3c2410_nand_correct_data(struct mtd_info *mtd, u_char *dat,
> if ((diff0 & ~(1<<fls(diff0))) == 0)
> return 1;
>
> - return 0;
> + return -EBADMSG;
> }
>
> /* ECC functions
> --
> 1.5.3.2
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-10-25 18:13 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-19 1:13 [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors Matt Reimer
2007-10-19 8:24 ` Jörn Engel
2007-10-19 9:00 ` Artem Bityutskiy
2007-10-19 19:29 ` Matt Reimer
2007-10-20 10:28 ` Jörn Engel
-- strict thread matches above, loose matches on Subject: below --
2007-10-20 16:48 Matt Reimer
2007-10-25 18:12 ` Matt Reimer
2007-10-20 16:44 Matt Reimer
2007-10-20 16:49 ` Matt Reimer
2007-10-19 1:02 [PATCH] MTD: fix s3c2410 error correction Matt Reimer
2007-10-19 1:02 ` [PATCH] MTD: make s3c2410's correct_data indicate an error for multi-bit read errors Matt Reimer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox