[PATCH] [MTD] NAND: Wrong calculation of page number in nand_block_bad()
Knobloch, Thomas
knobloch at siemens.com
Fri Apr 27 07:19:36 EDT 2007
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 at siemens.com>
diff -uNr a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
--- a/drivers/mtd/nand/nand_base.c 2007-04-27 12:44:23.345198284
+0200
+++ b/drivers/mtd/nand/nand_base.c 2007-04-27 12:46:57.916226928
+0200
@@ -312,7 +312,7 @@
/* 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,
More information about the linux-mtd
mailing list