diff options
author | Knobloch, Thomas <knobloch@siemens.com> | 2007-04-27 11:19:36 (GMT) |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2007-04-27 14:13:53 (GMT) |
commit | 78ab67da1002d954ea4c3e2b441e2483c41f94e8 (patch) | |
tree | ea967c51ff6d1b126f3db8ff7c73dfaa63875091 | |
parent | ef2e58ea6b9931c3a4816c66593da49bb20e3b24 (diff) | |
download | linux-78ab67da1002d954ea4c3e2b441e2483c41f94e8.tar.xz |
[MTD] [NAND] Wrong calculation of page number in nand_block_bad()
In case that there is no memory based bad block table available the
function nand_block_checkbad() in drivers/mtd/nand/nand_base.c will call
nand_block_bad() directly. When parameter 'getchip' is set to zero,
nand_block_bad() will not right shift the offset to calculate the
correct page number.
Signed-off-by: Thomas Knobloch <knobloch@siemens.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-rw-r--r-- | drivers/mtd/nand/nand_base.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index ab3b2d1..04de315 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -312,7 +312,7 @@ static int nand_block_bad(struct mtd_info *mtd, loff_t ofs, int getchip) /* Select the NAND device */ chip->select_chip(mtd, chipnr); } else - page = (int)ofs; + page = (int)(ofs >> chip->page_shift); if (chip->options & NAND_BUSWIDTH_16) { chip->cmdfunc(mtd, NAND_CMD_READOOB, chip->badblockpos & 0xFE, |