[MTD] NAND Signal that a bitflip was corrected by ECC
Return -EUCLEAN on read when a bitflip was detected and corrected, so the clients can react and eventually copy the affected block to a spare one. Make all in kernel users aware of the change. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
@@ -199,10 +199,13 @@ static ssize_t mtd_read(struct file *file, char __user *buf, size_t count,loff_t
|
||||
/* Nand returns -EBADMSG on ecc errors, but it returns
|
||||
* the data. For our userspace tools it is important
|
||||
* to dump areas with ecc errors !
|
||||
* For kernel internal usage it also might return -EUCLEAN
|
||||
* to signal the caller that a bitflip has occured and has
|
||||
* been corrected by the ECC algorithm.
|
||||
* Userspace software which accesses NAND this way
|
||||
* must be aware of the fact that it deals with NAND
|
||||
*/
|
||||
if (!ret || (ret == -EBADMSG)) {
|
||||
if (!ret || (ret == -EUCLEAN) || (ret == -EBADMSG)) {
|
||||
*ppos += retlen;
|
||||
if (copy_to_user(buf, kbuf, retlen)) {
|
||||
kfree(kbuf);
|
||||
|
Reference in New Issue
Block a user