mtd: ecc_strength is at ecc step granularity

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Mon May 28 07:59:07 EDT 2012


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=86c2072be6f3c2150cc35f00233f2c31bdba2745
Commit:     86c2072be6f3c2150cc35f00233f2c31bdba2745
Parent:     09cbe581e346229e33c48da00439419ff2fe6af7
Author:     Mike Dunn <mikedunn at newsguy.com>
AuthorDate: Wed Apr 25 12:06:05 2012 -0700
Committer:  David Woodhouse <David.Woodhouse at intel.com>
CommitDate: Sun May 13 23:09:58 2012 -0500

    mtd: ecc_strength is at ecc step granularity
    
    ecc_strength element of mtd_info will be the strength of one ecc step, not of
    the entire writesize, as was previously planned.  This is the appropriate way
    because, as was pointed out¹, bit errors in excess of the strength of one
    step can cause a hard error if they all occur within the same ecc region.
    
    ¹ http://lists.infradead.org/pipermail/linux-mtd/2012-March/040313.html
    
    Signed-off-by: Mike Dunn <mikedunn at newsguy.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
    Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
 drivers/mtd/nand/nand_base.c |    2 +-
 include/linux/mtd/mtd.h      |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 512066e..671f228 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -3487,7 +3487,7 @@ int nand_scan_tail(struct mtd_info *mtd)
 
 	/* propagate ecc info to mtd_info */
 	mtd->ecclayout = chip->ecc.layout;
-	mtd->ecc_strength = chip->ecc.strength * chip->ecc.steps;
+	mtd->ecc_strength = chip->ecc.strength;
 
 	/* Check, if we should skip the bad block table scan */
 	if (chip->options & NAND_SKIP_BBTSCAN)
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index cf5ea8c..cd0119d 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -164,7 +164,7 @@ struct mtd_info {
 	/* ECC layout structure pointer - read only! */
 	struct nand_ecclayout *ecclayout;
 
-	/* max number of correctible bit errors per writesize */
+	/* max number of correctible bit errors per ecc step */
 	unsigned int ecc_strength;
 
 	/* Data for variable erase regions. If numeraseregions is zero,



More information about the linux-mtd-cvs mailing list