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

The driver triggered a BUG() in nand_base.c:3214/nand_scan_tail() because the ecc.strength was not set in NAND_ECC_HW_SYNDROME ECC mode.
Signed-off-by: Marek Vasut marex@denx.de Cc: Benoit Thebaudeau benoit.thebaudeau@advansee.com Cc: Fabio Estevam fabio.estevam@freescale.com Cc: Scott Wood scottwood@freescale.com Cc: Stefano Babic sbabic@denx.de --- drivers/mtd/nand/mxc_nand.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
V2: Set ecc.strength for both NAND_ECC_HW and NAND_ECC_HW_SYNDROME mode
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index ac435f2..40b0741 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -1242,12 +1242,10 @@ int board_nand_init(struct nand_chip *this) 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; - } + if (is_mxc_nfc_1()) + this->ecc.strength = 1; + else + this->ecc.strength = 4;
host->pagesize_2k = 0;

Hi,
Tom/Stefano, can you pick this for .07? Otherwise all mxc with NAND are broken.
Thanks
The driver triggered a BUG() in nand_base.c:3214/nand_scan_tail() because the ecc.strength was not set in NAND_ECC_HW_SYNDROME ECC mode.
Signed-off-by: Marek Vasut marex@denx.de Cc: Benoit Thebaudeau benoit.thebaudeau@advansee.com Cc: Fabio Estevam fabio.estevam@freescale.com Cc: Scott Wood scottwood@freescale.com Cc: Stefano Babic sbabic@denx.de
drivers/mtd/nand/mxc_nand.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
V2: Set ecc.strength for both NAND_ECC_HW and NAND_ECC_HW_SYNDROME mode
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index ac435f2..40b0741 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -1242,12 +1242,10 @@ int board_nand_init(struct nand_chip *this) 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;
- }
if (is_mxc_nfc_1())
this->ecc.strength = 1;
else
this->ecc.strength = 4;
host->pagesize_2k = 0;
Best regards, Marek Vasut

Oh, sorry... didn't realize the release was in three days. :-(
I'll send a pull request.
-Scott
On 07/12/2013 08:26:04 AM, Marek Vasut wrote:
Hi,
Tom/Stefano, can you pick this for .07? Otherwise all mxc with NAND are broken.
Thanks
The driver triggered a BUG() in nand_base.c:3214/nand_scan_tail() because the ecc.strength was not set in NAND_ECC_HW_SYNDROME ECC mode.
Signed-off-by: Marek Vasut marex@denx.de Cc: Benoit Thebaudeau benoit.thebaudeau@advansee.com Cc: Fabio Estevam fabio.estevam@freescale.com Cc: Scott Wood scottwood@freescale.com Cc: Stefano Babic sbabic@denx.de
drivers/mtd/nand/mxc_nand.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
V2: Set ecc.strength for both NAND_ECC_HW and NAND_ECC_HW_SYNDROME
mode
diff --git a/drivers/mtd/nand/mxc_nand.c
b/drivers/mtd/nand/mxc_nand.c
index ac435f2..40b0741 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -1242,12 +1242,10 @@ int board_nand_init(struct nand_chip *this) 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;
- }
if (is_mxc_nfc_1())
this->ecc.strength = 1;
else
this->ecc.strength = 4;
host->pagesize_2k = 0;
Best regards, Marek Vasut
participants (2)
-
Marek Vasut
-
Scott Wood