summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Tjernlund2006-11-29 00:11:52 +0100
committerLinus Torvalds2006-11-29 02:26:50 +0100
commit967bf623e9f5eecfb056b1ba7e0efd74a21c9c3a (patch)
tree256413b403e8aa720050e5da858c5d13a7c45869
parent[PATCH] bridge: fix possible overflow in get_fdb_entries (diff)
downloadkernel-qcow2-linux-967bf623e9f5eecfb056b1ba7e0efd74a21c9c3a.tar.gz
kernel-qcow2-linux-967bf623e9f5eecfb056b1ba7e0efd74a21c9c3a.tar.xz
kernel-qcow2-linux-967bf623e9f5eecfb056b1ba7e0efd74a21c9c3a.zip
[PATCH] Fix Intel/Sharp command set erase suspend bug
When we sleep and wait for a suspended operation to be resumed, go back and check until it's ready -- don't just continue after the first time we're woken. This can cause file system corruption. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0001.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c
index 7ea49a0d5ec3..296159ec5189 100644
--- a/drivers/mtd/chips/cfi_cmdset_0001.c
+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
@@ -1087,7 +1087,7 @@ static int inval_cache_and_wait_for_operation(
}
spin_lock(chip->mutex);
- if (chip->state != chip_state) {
+ while (chip->state != chip_state) {
/* Someone's suspended the operation: sleep */
DECLARE_WAITQUEUE(wait, current);
set_current_state(TASK_UNINTERRUPTIBLE);