diff packages/fs/yaffs/current/src/ecos-yaffs-nand.c @ 311:16de60f90faa

ecos-yaffs-nand.c: Correctly use ECC on YAFFS tags in yaffs2
author wry
date Fri, 18 Sep 2009 11:13:00 +0000
parents 9c8ff034abb0
children 8e1210f7946a
line wrap: on
line diff
--- a/packages/fs/yaffs/current/src/ecos-yaffs-nand.c
+++ b/packages/fs/yaffs/current/src/ecos-yaffs-nand.c
@@ -73,9 +73,6 @@ int eyaffs_eraseBlockInNAND (struct yaff
     return rv==0 ? YAFFS_OK : YAFFS_FAIL;
 }
 
-// If writing a yaffs_PackedTags1, we store only its eight meaningful bytes 
-#define PACKEDTAGS1_OOBSIZE 8
-
 int eyaffs_writeChunkWithTagsToNAND (struct yaffs_DeviceStruct * dev,
         int chunkInNAND, const __u8 * data,
         const yaffs_ExtendedTags * tags)
@@ -120,9 +117,9 @@ int eyaffs_writeChunkWithTagsToNAND (str
             yaffs_PackTags2TagsPart(pt2tp, tags);
             rv = cyg_nand_write_page(part, chunkInNAND, data, dev->totalBytesPerChunk, 0, 0);
         } else {
-            yaffs_PackedTags2TagsPart pt;
-            yaffs_PackTags2TagsPart(&pt, tags);
-            rv = cyg_nand_write_page(part, chunkInNAND, data, dev->nDataBytesPerChunk, &pt, sizeof(yaffs_PackedTags2TagsPart));
+            yaffs_PackedTags2 pt;
+            yaffs_PackTags2(&pt, tags);
+            rv = cyg_nand_write_page(part, chunkInNAND, data, dev->nDataBytesPerChunk, &pt, PACKEDTAGS2_OOBSIZE);
         }
 #endif
     }
@@ -204,10 +201,10 @@ int eyaffs_readChunkWithTagsFromNAND (st
                 yaffs_UnpackTags2TagsPart(tags, pt2tp);
             }
         } else {
-            yaffs_PackedTags2TagsPart pt;
-            rv = cyg_nand_read_page(part, chunkInNAND, data, data ? dev->nDataBytesPerChunk : 0, &pt, sizeof(yaffs_PackedTags2TagsPart));
+            yaffs_PackedTags2 pt;
+            rv = cyg_nand_read_page(part, chunkInNAND, data, data ? dev->nDataBytesPerChunk : 0, &pt, tags ? PACKEDTAGS2_OOBSIZE : 0);
             if (tags)
-                yaffs_UnpackTags2TagsPart(tags, &pt);
+                yaffs_UnpackTags2(tags, &pt);
         }
 #endif
     }