]> err.no Git - linux-2.6/commitdiff
[ARM] 3744/1: MMC: mmcqd gets stuck when block queue is plugged
authorJuha [\18êölä <juha.yrjola@solidboot.com>
Sun, 6 Aug 2006 08:58:22 +0000 (09:58 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 6 Aug 2006 08:58:22 +0000 (09:58 +0100)
Patch from Juha [\18êö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>
drivers/mmc/mmc_queue.c

index 0b9682e9a357117edbe4cf439851134051b94d74..74f8cdeeff0f8501f379d01037144ecd404c6ff4 100644 (file)
@@ -79,7 +79,8 @@ static int mmc_queue_thread(void *d)
                spin_lock_irq(q->queue_lock);
                set_current_state(TASK_INTERRUPTIBLE);
                if (!blk_queue_plugged(q))
-                       mq->req = req = elv_next_request(q);
+                       req = elv_next_request(q);
+               mq->req = req;
                spin_unlock_irq(q->queue_lock);
 
                if (!req) {