diff options
author | Savin Zlobec <tglx@cruncher.tec.linutronix.de> | 2006-06-21 11:51:20 +0200 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-06-21 13:11:56 +0100 |
commit | 0d420f9d6111b3a2fb7d5dd0180456eed469055d (patch) | |
tree | 22f543748d8ffbda4f0787a07f809844f0d5896c /drivers/mtd/nand/nand_base.c | |
parent | 22ae813b85df7c0b0fc7c8d6f336d6a9f566ff97 (diff) |
[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.c | 10 |
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++; |