mtd: nand: do not scan bad blocks with NAND_BBT_NO_OOB set
authorBrian Norris <computersforpeace@gmail.com>
Wed, 21 Sep 2011 01:36:42 +0000 (18:36 -0700)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Wed, 21 Sep 2011 06:19:08 +0000 (09:19 +0300)
commit752ed6c5f8c0ee182219ff8682f5a98e47ee866f
treeaa7333340bff8c91d31202e46c52d0b104723f23
parentdadc17a3e34810ed411a62e6b4cafdf3e5e1d5c8
mtd: nand: do not scan bad blocks with NAND_BBT_NO_OOB set

Updates to our default function for creating bad block patterns have
broken the "no OOB" feature. The NAND_BBT_NO_OOB option should not be
set while scanning for bad blocks, but we've been passing all BBT
options from nand_chip.bbt_options to the bad block scan. This causes us
to hit the:

BUG_ON(bd->options & NAND_BBT_NO_OOB);

in create_bbt() when we scan the flash for bad blocks.

Thus, while it can be legal to set NAND_BBT_NO_OOB in a custom badblock
pattern descriptor (presumably with NAND_BBT_CREATE disabled?), we
should not pass it through in our default function.

Also, to help clarify and emphasize that the function creates bad block
patterns only (not, for example, table descriptors for locating
flash-based BBT), I renamed `nand_create_default_bbt_descr' to
`nand_create_badblock_pattern'.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
drivers/mtd/nand/nand_bbt.c