[MTD] NAND: Fix nand_default_mark_blockbad() when flash-based BBT disabled

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Thu Oct 26 06:59:02 EDT 2006


Commit:     ff0dab64b4e9ce3a073365342297e76ddaae9697
Parent:     784f4d5e66ac1d962091e08fe5a4b238ed8c793d
commit ff0dab64b4e9ce3a073365342297e76ddaae9697
Author:     Ricard Wanderlöf <ricard.wanderlof at axis.com>
AuthorDate: Mon Oct 23 09:33:34 2006 +0200
Commit:     David Woodhouse <dwmw2 at infradead.org>
CommitDate: Thu Oct 26 13:17:49 2006 +0300

    [MTD] NAND: Fix nand_default_mark_blockbad() when flash-based BBT disabled
    
    When a flash-based BBT is not used, nand_default_mark_blockbad() is supposed
    to mark the block bad in the oob. However, it sets the wrong length variable
    so that no bad block marker is in fact written. This patch attempts to
    rectify that.
    
    (As note, it seems to be that logically, it shouldn't be necessary to set
    both length variables, as one appears to be for the main buffer, and
    one for the oob buffer, but this is how it is done in several places,
    including the code for the mtd character device MEMWRITEOOB and MEMREADOOB
    ioctls. I'm not sure if this is a temporary solution during some rework of
    the mtd infrastructure, or whether there is a deeper thought here.)
    
    Signed-off-by: Ricard Wanderlöf <ricardw at axis.com>
    Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
---
 drivers/mtd/nand/nand_base.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index f23ab2c..8df36e2 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -362,7 +362,7 @@ static int nand_default_block_markbad(st
 		 * access
 		 */
 		ofs += mtd->oobsize;
-		chip->ops.len = 2;
+		chip->ops.len = chip->ops.ooblen = 2;
 		chip->ops.datbuf = NULL;
 		chip->ops.oobbuf = buf;
 		chip->ops.ooboffs = chip->badblockpos & ~0x01;



More information about the linux-mtd-cvs mailing list