aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha [êölä <juha.yrjola@solidboot.com>2006-08-06 04:58:22 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-08-06 04:58:22 -0400
commitc723e08af18e60cda3bbc90e0d6fb688587aeb9f (patch)
tree54d5aeb522be373c1cae8b4e41e6d515512999c2
parentf5d635f649607b09b0b4620d25d028fd2b1b7ea5 (diff)
[ARM] 3744/1: MMC: mmcqd gets stuck when block queue is plugged
Patch from Juha [êölä When the block queue is plugged, mq->req must be set to NULL. Otherwise mq->req might be left non-NULL, even though mmcqd is not processing a request, thus preventing the MMC queue thread from being woken up when new requests do arrive. Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--drivers/mmc/mmc_queue.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/mmc_queue.c b/drivers/mmc/mmc_queue.c
index 0b9682e9a357..74f8cdeeff0f 100644
--- a/drivers/mmc/mmc_queue.c
+++ b/drivers/mmc/mmc_queue.c
@@ -79,7 +79,8 @@ static int mmc_queue_thread(void *d)
79 spin_lock_irq(q->queue_lock); 79 spin_lock_irq(q->queue_lock);
80 set_current_state(TASK_INTERRUPTIBLE); 80 set_current_state(TASK_INTERRUPTIBLE);
81 if (!blk_queue_plugged(q)) 81 if (!blk_queue_plugged(q))
82 mq->req = req = elv_next_request(q); 82 req = elv_next_request(q);
83 mq->req = req;
83 spin_unlock_irq(q->queue_lock); 84 spin_unlock_irq(q->queue_lock);
84 85
85 if (!req) { 86 if (!req) {