|
@@ -1200,6 +1200,9 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
|
|
|
else
|
|
|
ret = mmc_blk_issue_discard_rq(mq, req);
|
|
|
} else if (req && req->cmd_flags & REQ_FLUSH) {
|
|
|
+ /* complete ongoing async transfer before issuing flush */
|
|
|
+ if (card->host->areq)
|
|
|
+ mmc_blk_issue_rw_rq(mq, NULL);
|
|
|
ret = mmc_blk_issue_flush(mq, req);
|
|
|
} else {
|
|
|
ret = mmc_blk_issue_rw_rq(mq, req);
|