-#ifdef CONFIG_YAFFS_USE_NANDECC
- mtd->read_ecc(mtd,addr,YAFFS_BYTES_PER_CHUNK,&dummy,data,spareAsBytes,NAND_YAFFS_OOB);
-#else
- mtd->read_ecc(mtd,addr,YAFFS_BYTES_PER_CHUNK,&dummy,data,spareAsBytes,NAND_NONE_OOB);
-#endif
+ if(dev->useNANDECC)
+ {
+ u8 tmpSpare[ YAFFS_BYTES_PER_SPARE + (2*sizeof(int)) ];
+ retval = mtd->read_ecc(mtd,addr,dev->nBytesPerChunk,&dummy,data,tmpSpare,NAND_YAFFS_OOB);
+ memcpy(spareAsBytes, tmpSpare, YAFFS_BYTES_PER_SPARE);
+ }
+ else
+ {
+ retval = mtd->read_ecc(mtd,addr,dev->nBytesPerChunk,&dummy,data,spareAsBytes,NAND_NONE_OOB);
+ }