]> git.baikalelectronics.ru Git - kernel.git/commit
[MTD] [NOR] Fix -ETIMEO errors in CFI driver
authorAlexey Korolev <akorolev@infradead.org>
Wed, 16 Jul 2008 14:28:56 +0000 (15:28 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 25 Jul 2008 13:48:42 +0000 (09:48 -0400)
commit4b5c53ccdf99b24e2323fa26c70919d2dfffe4b4
treea2295f4755e329215a9420916d6a69ce8d9f4444
parentcb0b1549bf67086eeeb60797ed8ecea1a78575a0
[MTD] [NOR] Fix -ETIMEO errors in CFI driver

Existing CFI driver has problems with excessive writes during erase.
If CFI driver does many writes during one erase cycle we may face the
messages with -ETIMEO error on erase operation.  It may cause the
following data corruption and kernel panics.

The reason of the issue is related to specifics of suspend operation:
if we write to flash during erase, suspend operation will cost some time
to erase procedure (for P30 it could be significant). In current version of
cfi driver the problem of many suspends is partially workarounded by adding
some time reserv to any operation (8xerase_time) but if we have many writes
during one erase the problem appears.

This patch detects the suspend and resets timer if suspend occured. It
has been well verified on different chips. No problems were found.
Could you please include the patch as it is simple and fixes bad issue.

Signed-off-by: Alexey Korolev <akorolev@infradead.org>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/chips/cfi_cmdset_0001.c