Browse Source

[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>
Juha [l 19 years ago
parent
commit
c723e08af1
1 changed files with 2 additions and 1 deletions
  1. 2 1
      drivers/mmc/mmc_queue.c

+ 2 - 1
drivers/mmc/mmc_queue.c

@@ -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) {