]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
[MTD] [OneNAND] Return only negative error codes
authorAdrian Hunter <ext-adrian.hunter@nokia.com>
Fri, 12 Oct 2007 07:19:38 +0000 (10:19 +0300)
committerDavid Woodhouse <dwmw2@infradead.org>
Sun, 14 Oct 2007 12:37:41 +0000 (13:37 +0100)
The OneNAND driver was confusing JFFS2 by returning positive error
codes.

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
drivers/mtd/onenand/onenand_base.c

index f633941011a522c3017fc98aa03182d29f9fe88d..a8c426bf47a41e4cd7f6f7969dc96e89c0b90b78 100644 (file)
@@ -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++;