projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix looping on handles
[yaffs2.git]
/
yaffs_tagscompat.c
diff --git
a/yaffs_tagscompat.c
b/yaffs_tagscompat.c
index ab756d06d0a9eb580ef520bd48265dc08e03e4f3..3e5e8a40b22cc25c4c962f74cdbe903b779e6005 100644
(file)
--- a/
yaffs_tagscompat.c
+++ b/
yaffs_tagscompat.c
@@
-253,6
+253,9
@@
static int yaffs_ReadChunkFromNAND(struct yaffs_DeviceStruct *dev,
/* Must allocate enough memory for spare+2*sizeof(int) */
/* for ecc results from device. */
struct yaffs_NANDSpare nspare;
/* Must allocate enough memory for spare+2*sizeof(int) */
/* for ecc results from device. */
struct yaffs_NANDSpare nspare;
+
+ memset(&nspare,0,sizeof(nspare));
+
retVal =
dev->readChunkFromNAND(dev, chunkInNAND, data,
(yaffs_Spare *) & nspare);
retVal =
dev->readChunkFromNAND(dev, chunkInNAND, data,
(yaffs_Spare *) & nspare);
@@
-337,7
+340,7
@@
static void yaffs_HandleReadDataError(yaffs_Device * dev, int chunkInNAND)
int blockInNAND = chunkInNAND / dev->nChunksPerBlock;
/* Mark the block for retirement */
int blockInNAND = chunkInNAND / dev->nChunksPerBlock;
/* Mark the block for retirement */
- yaffs_GetBlockInfo(dev, blockInNAND)->needsRetiring = 1;
+ yaffs_GetBlockInfo(dev, blockInNAND
+ dev->blockOffset
)->needsRetiring = 1;
T(YAFFS_TRACE_ERROR | YAFFS_TRACE_BAD_BLOCKS,
(TSTR("**>>Block %d marked for retirement" TENDSTR), blockInNAND));
T(YAFFS_TRACE_ERROR | YAFFS_TRACE_BAD_BLOCKS,
(TSTR("**>>Block %d marked for retirement" TENDSTR), blockInNAND));
@@
-436,7
+439,7
@@
int yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(yaffs_Device * dev,
yaffs_Spare spare;
yaffs_Tags tags;
yaffs_Spare spare;
yaffs_Tags tags;
- yaffs_ECCResult eccResult;
+ yaffs_ECCResult eccResult
= YAFFS_ECC_RESULT_UNKNOWN
;
static yaffs_Spare spareFF;
static int init = 0;
static yaffs_Spare spareFF;
static int init = 0;