[Yaffs] patch for using ECC + YAFFS + cvs MTD + 2.4.x

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Aras Vaichas
Date:  
To: YAFFS mailing list
Subject: [Yaffs] patch for using ECC + YAFFS + cvs MTD + 2.4.x
This is a patch for YAFFS source code that allows you to use the
CONFIG_YAFFS_USE_NANDECC option with a 2.4.x kernel and the latest MTD code. If
you don't have this patch, the struct member "eccbytes" will not be setup
correctly and you will get ECC style errors when reading from a NAND device.
i.e. random single bit flips in large blocks of data

My patch assumes that if CONFIG_YAFFS_USE_OLD_MTD is NOT defined then you must
be using the latest MTD code and therefore it should work with 2.4.x kernels.

Thanks to Thomas Gleixner for pointing this one out to me.

Aras

# diff -Naur yaffs_mtdif.c.old yaffs_mtdif.c
--- yaffs_mtdif.c.old   2004-12-10 13:06:36.000000000 +1100
+++ yaffs_mtdif.c       2004-12-13 11:30:52.304493960 +1100
@@ -31,7 +31,7 @@


  struct nand_oobinfo yaffs_oobinfo = {
         useecc: 1,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,8))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,8)) || (!CONFIG_YAFFS_USE_OLD_MTD)
  // this is for versions of mtd nand driver in kernel 2.6.8 and later
         eccbytes: 6,
  #endif