]> git.baikalelectronics.ru Git - kernel.git/commit
mtd: fix hang-up in cfi erase and read contention
authorTadashi Abe <tabe@mvista.com>
Thu, 19 May 2011 06:58:15 +0000 (15:58 +0900)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 25 May 2011 01:11:11 +0000 (02:11 +0100)
commite693696febb25ced1da7fa7afda7cb59a59a5b49
tree40cc6edf73cf06b6392a18fd496cb9dc071c98d4
parent397d40ef033b4e9d0136e1773b885344dc973aa7
mtd: fix hang-up in cfi erase and read contention

cfi erase command hangs up when erase and read contention occurs.
If read runs at the same address as erase operation, read issues
Erase-Suspend via get_chip() and the erase goes into sleep in wait queue.
But in this case, read operation exits by time-out without waking it up.

I think the other variants (0001, 0020 and lpddr) have the same problem too.
Tested and verified the patch only on CFI-0002 flash, though.

Signed-off-by: Tadashi Abe <tabe@mvista.com>
Acked-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/chips/cfi_cmdset_0001.c
drivers/mtd/chips/cfi_cmdset_0002.c
drivers/mtd/chips/cfi_cmdset_0020.c
drivers/mtd/lpddr/lpddr_cmds.c