Skip to content

Commit

Permalink
[MTD] [NAND] Wrong calculation of page number in nand_block_bad()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Knobloch, Thomas authored and David Woodhouse committed Apr 27, 2007
1 parent ef2e58e commit 78ab67d
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/mtd/nand/nand_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 78ab67d

Please sign in to comment.