Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78ab67da authored by Knobloch, Thomas's avatar Knobloch, Thomas Committed by David Woodhouse
Browse files

[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: default avatarThomas Knobloch <knobloch@siemens.com>
Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent ef2e58ea
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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,