[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>
This commit is contained in:
parent
f5d635f649
commit
c723e08af1
|
@ -79,7 +79,8 @@ static int mmc_queue_thread(void *d)
|
||||||
spin_lock_irq(q->queue_lock);
|
spin_lock_irq(q->queue_lock);
|
||||||
set_current_state(TASK_INTERRUPTIBLE);
|
set_current_state(TASK_INTERRUPTIBLE);
|
||||||
if (!blk_queue_plugged(q))
|
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);
|
spin_unlock_irq(q->queue_lock);
|
||||||
|
|
||||||
if (!req) {
|
if (!req) {
|
||||||
|
|
Reference in New Issue