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

login
register
mail settings
Submitter Marek Vasut
Date July 2, 2013, 3:11 p.m.
Message ID <1372777915-12390-1-git-send-email-marex@denx.de>
Download mbox | patch
Permalink /patch/256448/
State Superseded
Delegated to: Scott Wood
Headers show

Comments

Marek Vasut - July 2, 2013, 3:11 p.m.
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@denx.de>
Cc: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Scott Wood <scottwood@freescale.com>
---
 drivers/mtd/nand/mxc_nand.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Patch

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;
 	}
 
 	host->pagesize_2k = 0;