X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_tagscompat.c;h=aed101e45be5aa7421396f2d57ae54326d49c5d9;hp=ab756d06d0a9eb580ef520bd48265dc08e03e4f3;hb=40c386c7a14ebfa8afc14562f3b33a416831b26d;hpb=e8cfe05cf0d057f6978c37943e51b17bb14664e3 diff --git a/yaffs_tagscompat.c b/yaffs_tagscompat.c index ab756d0..aed101e 100644 --- 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; + + memset(&nspare,0,sizeof(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 */ - 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));