strange bad block code

Matthieu CASTET matthieu.castet at parrot.com
Thu Apr 21 10:05:52 EDT 2011


Hi,

while looking at the bad block code, I saw that e0b58d0a introduced a
"chip->badblockbits" for bad block detection in nand_block_bad[1].
That's great because to we can use it to handle bit flip in bad block marker.

But few commit latter c7b28e25cb9 removed "chip->badblockbits = 8;" from common
code.
So now chip->badblockbits = 0.

How such code wan works ?

Adding NAND_SKIP_BBTSCAN in any driver, expose the problem.



[1]
    if (likely(chip->badblockbits == 8))
        res = bad != 0xFF;
    else
        res = hweight8(bad) < chip->badblockbits;



More information about the linux-mtd mailing list