*** empty log message ***
[yaffs/.git] / yaffs_ramem.c
index 2aebfe981de65c8dadcb7b0a9f798b8e8b4e5eae..09e49c306bfeac3500a7747e7e77dc9323fbc950 100644 (file)
@@ -68,6 +68,15 @@ static nandemul_Device ned;
 int sizeInMB = DEFAULT_SIZE_IN_MB;
 
 
+static void nandemul_yield(int n)
+{
+#ifdef __KERNEL__
+       if(n > 0) schedule_timeout(n);
+#endif
+
+}
+
+
 static void nandemul_ReallyEraseBlock(int blockNumber)
 {
        int i;
@@ -81,6 +90,7 @@ static void nandemul_ReallyEraseBlock(int blockNumber)
                theBlock->page[i].count[1] = 0;
                theBlock->page[i].count[2] = 0;
                theBlock->page[i].empty = 1;
+               nandemul_yield(2);
        }
 
 }
@@ -208,6 +218,11 @@ int nandemul_WriteChunkToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data
                }
                ned.block[blk]->page[pg].count[2]++;
        }
+       
+       if(spare || data)
+       {
+               nandemul_yield(1);
+       }
 
        return YAFFS_OK;
 }