summaryrefslogtreecommitdiff
path: root/drivers/mmc/card/queue.h
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2015-08-12 17:53:21 -0700
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:27:38 -0700
commit38c20819fce7eb22a3d0f560049fc8f5c0292bf7 (patch)
tree9ecf21631ca44ff68e1e6eb0174c5eb3564350a7 /drivers/mmc/card/queue.h
parentb78e1b402589663b584111e24b6756beccef4797 (diff)
mmc: queue: fix the cmdq thread wake up handling
If request has to be requeued (due to any DCMD commmand pending or cmdq being halted) and if we change the task status to interruptible before going to sleep then thread may not wakeup again. Note that blk_requeue_request() doesn't trigger ->request_fn() again to wakeup the thread. Fix this issue by making cmdq thread wait for the completion of DCMD or until the cmdq is unhalted. This change also simplifies the cmdq thread function. Change-Id: Iebffc993241e5fadb2962fedc44576566dc66e9c Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Diffstat (limited to 'drivers/mmc/card/queue.h')
-rw-r--r--drivers/mmc/card/queue.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/mmc/card/queue.h b/drivers/mmc/card/queue.h
index e13f3ceb0cc2..e67d0546346a 100644
--- a/drivers/mmc/card/queue.h
+++ b/drivers/mmc/card/queue.h
@@ -73,6 +73,7 @@ struct mmc_queue {
struct completion cmdq_shutdown_complete;
struct completion cmdq_pending_req_done;
+ struct request *cmdq_req_peeked;
int (*err_check_fn) (struct mmc_card *, struct mmc_async_req *);
void (*packed_test_fn) (struct request_queue *, struct mmc_queue_req *);
void (*cmdq_shutdown)(struct mmc_queue *);