[U-Boot] [PATCH] mtd: mxc_nand: Fix crash after MTD resync

Scott Wood scottwood at freescale.com
Tue Jul 2 21:13:50 CEST 2013


On 07/02/2013 10:11:55 AM, Marek Vasut wrote:
> The driver triggered a BUG() in nand_base.c:3214/nand_scan_tail()
> because the ecc.strength was incorrectly set in case of NAND_ECC_HW
> instead of NAND_ECC_HW_SYNDROME ECC mode.
> 
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Benoît Thébaudeau <benoit.thebaudeau at advansee.com>
> Cc: Fabio Estevam <fabio.estevam at freescale.com>
> Cc: Scott Wood <scottwood at freescale.com>
> ---
>  drivers/mtd/nand/mxc_nand.c |    7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
> index ac435f2..08c7b8b 100644
> --- a/drivers/mtd/nand/mxc_nand.c
> +++ b/drivers/mtd/nand/mxc_nand.c
> @@ -1238,15 +1238,12 @@ int board_nand_init(struct nand_chip *this)
>  		this->ecc.write_oob = mxc_nand_write_oob_syndrome;
>  		this->ecc.bytes = 9;
>  		this->ecc.prepad = 7;
> -	} else {
> -		this->ecc.mode = NAND_ECC_HW;
> -	}
> -
> -	if (this->ecc.mode == NAND_ECC_HW) {
>  		if (is_mxc_nfc_1())
>  			this->ecc.strength = 1;
>  		else
>  			this->ecc.strength = 4;
> +	} else {
> +		this->ecc.mode = NAND_ECC_HW;
>  	}

Where does ecc.strength now get set for the non-SYNDROME case?

-Scott


More information about the U-Boot mailing list