On Thursday 19 April 2007 21:54, Charles Manning wrote: > That would suggest to me that somehow the yaffs short op cache is screwed up. > The dd's you do: > #dd if=/dev/zero of=/nand0/test1 bs=2k count=xxx > > are chunk aligned which means that you're bypassing the cache. > If that theory holds, then > #dd if=/dev/zero of=/nand0/test1 bs=2k count=1000 > will work and it is not a file size issue. It works. > > What happens if you do > #dd if=/dev/zero of=/nand0/test1 bs=1k count=10 That works, too! > > That would force yaffs to use the cache and, I suspect might cause the crash. But using a block size bigger or equal to 4k crashes the system: #dd if=/dev/zero of=/nand0/test1 bs=4k count=10 Exactly 4095 bytes is still ok: #dd if=/dev/zero of=/nand0/test1 bs=4095 count=10 > > If this is happening then it is probably because the cache is not being > allocated correctly and unfortunately there are insufficient checks in place > to see that the malloc succeeded. There is some stuff I am working on that > fixes this and other issues but that won't be checked in for a while. > > Something else to try would be do look in yaffs_fs.c for where > dev->nShortOpCaches is assigned and set that to zero. That turns off the > internal cache. I did the same tests with internal cache turned off. But it had no impact on the issue. Matthias