mtd: nand: sunxi: fix sunxi_nfc_hw_ecc_read/write_chunk()

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Fri Nov 6 10:59:29 PST 2015


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=74eb9ff54e21dbeefa04ff30e6aaf780b91dd261
Commit:     74eb9ff54e21dbeefa04ff30e6aaf780b91dd261
Parent:     f3c63795e90f0c6238306883b6c72f14d5355721
Author:     Boris BREZILLON <boris.brezillon at free-electrons.com>
AuthorDate: Tue Oct 20 22:16:00 2015 +0200
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Mon Nov 2 12:54:25 2015 -0800

    mtd: nand: sunxi: fix sunxi_nfc_hw_ecc_read/write_chunk()
    
    The sunxi_nfc_hw_ecc_read/write_chunk() functions try to avoid changing
    the column address if unnecessary, but the logic to determine whether it's
    necessary or not is currently wrong: it adds the ecc->bytes value to the
    current offset where it should actually add ecc->size.
    
    Fixes: 913821bdd211 ("mtd: nand: sunxi: introduce sunxi_nfc_hw_ecc_read/write_chunk()")
    Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/nand/sunxi_nand.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c
index ef46ac6..96f7370 100644
--- a/drivers/mtd/nand/sunxi_nand.c
+++ b/drivers/mtd/nand/sunxi_nand.c
@@ -588,7 +588,7 @@ static int sunxi_nfc_hw_ecc_read_chunk(struct mtd_info *mtd,
 
 	sunxi_nfc_read_buf(mtd, data, ecc->size);
 
-	if (data_off + ecc->bytes != oob_off)
+	if (data_off + ecc->size != oob_off)
 		nand->cmdfunc(mtd, NAND_CMD_RNDOUT, oob_off, -1);
 
 	ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
@@ -679,7 +679,7 @@ static int sunxi_nfc_hw_ecc_write_chunk(struct mtd_info *mtd,
 	writel(sunxi_nfc_buf_to_user_data(oob),
 	       nfc->regs + NFC_REG_USER_DATA(0));
 
-	if (data_off + ecc->bytes != oob_off)
+	if (data_off + ecc->size != oob_off)
 		nand->cmdfunc(mtd, NAND_CMD_RNDIN, oob_off, -1);
 
 	ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);



More information about the linux-mtd-cvs mailing list