summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand/nand_base.c
diff options
context:
space:
mode:
authorSavin Zlobec2006-06-21 11:51:20 +0200
committerDavid Woodhouse2006-06-21 14:11:56 +0200
commit0d420f9d6111b3a2fb7d5dd0180456eed469055d (patch)
tree22f543748d8ffbda4f0787a07f809844f0d5896c /drivers/mtd/nand/nand_base.c
parent[PATCH] add __iowrite64_copy (diff)
downloadkernel-qcow2-linux-0d420f9d6111b3a2fb7d5dd0180456eed469055d.tar.gz
kernel-qcow2-linux-0d420f9d6111b3a2fb7d5dd0180456eed469055d.tar.xz
kernel-qcow2-linux-0d420f9d6111b3a2fb7d5dd0180456eed469055d.zip
[MTD] NAND: Missing fixups
The oob fixups broke a return value and missed one patch from the Mailing List. Signed-off-by: Savin Zlobec <savin@epico.si> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/mtd/nand/nand_base.c')
-rw-r--r--drivers/mtd/nand/nand_base.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 27083ed0a017..8df184f6d8d1 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1176,7 +1176,7 @@ static int nand_write_oob_std(struct mtd_info *mtd, struct nand_chip *chip,
status = chip->waitfunc(mtd, chip);
- return status;
+ return status & NAND_STATUS_FAIL ? -EIO : 0;
}
/**
@@ -1271,10 +1271,6 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
sndcmd = chip->ecc.read_oob(mtd, chip, page, sndcmd);
buf = nand_transfer_oob(chip, buf, ops);
- readlen -= ops->ooblen;
- if (!readlen)
- break;
-
if (!(chip->options & NAND_NO_READRDY)) {
/*
* Apply delay or wait for ready/busy pin. Do this
@@ -1288,6 +1284,10 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
nand_wait_ready(mtd);
}
+ readlen -= ops->ooblen;
+ if (!readlen)
+ break;
+
/* Increment page address */
realpage++;