linux-kernel-test/drivers/mtd/onenand
Artem Bityutskiy 49dc08eeda [MTD] [OneNAND] fix numerous races
This patch make the OneNAND driver much less racy. It fixes
our "onenand_wait: read timeout!" heisenbugs. The reason of
these bugs was that the driver did not lock the chip when
accessing OTP, and it screwed up OneNAND state when the OTP
was read while JFFS2 was doing FS checking.

This patch also fixes other races I spotted:
1. BBT was not protected
2. Access to ecc_stats was not protected

Now the chip is locked when BBT is accessed.

To fix all of these I basically split all interface functions
on 'function()' and 'function_nolock()' parts.

I tested this patch on N800 hardware - it fixes our problems.
But I tested a little different version because our OneNAND
codebase is slightly out-of-date. But it should be OK.

This patch also includes the prin fixes I posted before.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-09-23 19:58:52 +01:00
..
generic.c Merge git://git.infradead.org/~kmpark/onenand-mtd-2.6 2006-11-29 00:03:10 +00:00
Kconfig [MTD] OneNAND Simulator support 2007-06-30 08:25:45 +01:00
Makefile [MTD] OneNAND Simulator support 2007-06-30 08:25:45 +01:00
onenand_base.c [MTD] [OneNAND] fix numerous races 2007-09-23 19:58:52 +01:00
onenand_bbt.c [MTD] OneNAND: Error message printing and bad block scan erros 2007-02-07 12:15:01 +09:00
onenand_sim.c [MTD] [ONENAND] onenand_sim.c: make struct info static 2007-08-01 11:04:26 +01:00