diff options
-rw-r--r-- | drivers/mmc/card/block.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 38d01492a52..1ff5486213f 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c | |||
@@ -1200,6 +1200,9 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req) | |||
1200 | else | 1200 | else |
1201 | ret = mmc_blk_issue_discard_rq(mq, req); | 1201 | ret = mmc_blk_issue_discard_rq(mq, req); |
1202 | } else if (req && req->cmd_flags & REQ_FLUSH) { | 1202 | } else if (req && req->cmd_flags & REQ_FLUSH) { |
1203 | /* complete ongoing async transfer before issuing flush */ | ||
1204 | if (card->host->areq) | ||
1205 | mmc_blk_issue_rw_rq(mq, NULL); | ||
1203 | ret = mmc_blk_issue_flush(mq, req); | 1206 | ret = mmc_blk_issue_flush(mq, req); |
1204 | } else { | 1207 | } else { |
1205 | ret = mmc_blk_issue_rw_rq(mq, req); | 1208 | ret = mmc_blk_issue_rw_rq(mq, req); |