aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Boyer <jdub@us.ibm.com>2005-12-06 12:28:19 -0500
committerDavid Woodhouse <dwmw2@infradead.org>2006-05-16 20:11:17 -0400
commitdf54b52c411befdcf1d0989f939a49163570ad29 (patch)
treee51dbc7a88da164ed1ab6b29273ae01d2faf4025
parentba9627b85fcb5ed67285ca0711f0f4d1e965746e (diff)
CHIPS: Fix potential starvation in cfi_cmdset_0001
The patch below fixes a potential starvation issue that can arise when there is contention on a chip during a period when a process is currently writing to it. The starvation is avoided by conditionally rescheduling when the chip is left in a state usable by other processes. Signed-off-by: Josh Boyer <jdub@us.ibm.com> Signed-off-by: Tom Gall <tom_gall@vnet.ibm.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0001.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c
index 898c321ab86d..e797752f7c0b 100644
--- a/drivers/mtd/chips/cfi_cmdset_0001.c
+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
@@ -1691,6 +1691,11 @@ static int cfi_intelext_writev (struct mtd_info *mtd, const struct kvec *vecs,
1691 if (chipnum == cfi->numchips) 1691 if (chipnum == cfi->numchips)
1692 return 0; 1692 return 0;
1693 } 1693 }
1694
1695 /* Be nice and reschedule with the chip in a usable state for other
1696 processes. */
1697 cond_resched();
1698
1694 } while (len); 1699 } while (len);
1695 1700
1696 return 0; 1701 return 0;