Kernel oops after sync command in jffs2

Frederic Giasson fgiasson at
Thu May 16 12:04:23 EDT 2002


	I am having a kernel oops when I do a sync command right after a
file erase in jffs2.  It have setup a test which copies a bunch of big files
into my jffs2 drive, then erase them and does a sync before doing another
loop.  My test program never fails at the first loop, but only after a few
tens of loops.

	The test I am running fills jffs2 to 99% full.  I have a 4MB AMD
AM29DL323 CFI flash device, therefore I am using cfi_cmdset_002 chip driver.
Right before the kernel oops message pops, I get this error message from the
chip driver: "waiting for erase to complete timed out.  Erase at 0x320000
failed immediately: errno -5".  Peering down into the chip driver code, I
found that the following contition occurs: 		

		/* The erasing didn't stop?? */
		if ((status & dq5) == dq5) {
			/* dq5 is active so we can do a reset and stop the
erase */

			printk( "Erase internally timed out in flash
device!!!\n" ); // temp by FG

			cfi_write(map, CMD(0xF0), chip->start);

	I know that the sync command triggers pending erases in jffs2.  This
is especially why I use it, because it proved that the "rm" / "cp" cycle of
my files is faster much more constant when I use sync between the "rm" and
the "cp" command.  Is sync command correctly supported by JFFS2?  Anyone
else experienced problems similar to mine?

Thanks in avance,

Frédéric Giasson 

More information about the linux-mtd mailing list