[U-Boot] [PATCH] NAND: Really ignore bad blocks when scrubbing

Scott Wood scottwood at freescale.com
Fri Aug 19 22:08:33 CEST 2011


On 08/16/2011 12:03 PM, Marek Vasut wrote:
> Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
> ---
>  drivers/mtd/nand/nand_base.c |    2 +-
>  drivers/mtd/nand/nand_util.c |    1 +
>  include/linux/mtd/mtd.h      |    1 +
>  3 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index a5f872e..3093067 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -2224,7 +2224,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
>  		/*
>  		 * heck if we have a bad block, we do not erase bad blocks !
>  		 */
> -		if (nand_block_checkbad(mtd, ((loff_t) page) <<
> +		if (!instr->scrub && nand_block_checkbad(mtd, ((loff_t) page) <<
>  					chip->page_shift, 0, allowbbt)) {
>  			printk(KERN_WARNING "nand_erase: attempt to erase a "
>  			       "bad block at page 0x%08x\n", page);

Changelog should describe why the existing mechanism of overriding the
block_bad method is insufficient (I think there may be issues if you try
to scrub before the bbt is first built) -- and if this supersedes that
mechanism, that mechanism should be removed.

-Scott



More information about the U-Boot mailing list