Erase race?

Jon Ringle
2010-04-13T20:15:44Z

Hi,
I have a few machines that have UBI and UBIFS on NOR flash that are
undergoing continuous reboot testing.
One of them just caught the following failure:

[   51.250000] IXP4XX-Flash.0: buffer write error (status 0xd0)
[   51.250000] UBI error: ubi_io_write: error -22 while writing 64
bytes to PEB 226:0, written 0 bytes
[   51.270000] UBI error: erase_worker: failed to erase PEB 226, error -22
[   51.270000] UBI warning: ubi_ro_mode: switch to read-only mode
[   51.290000] UBI error: do_work: work failed with error code -22
[   51.290000] UBI error: ubi_thread: ubi_bgt0d: work failed with error code -22

Looking at this it appears that the failure might have been caused due
to the erase_worker and ubi_io_write occurring out of order... since
it looks like ubi_io_write was trying to write at offset 0 of the PEB,
which I imagine would have to be the EC header, which should happen
after the block is erased. But it doesn't seem to be the case here.

Jon