diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2017-03-13 08:36:33 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2017-03-14 12:13:25 -0400 |
commit | 8ecc34448e24e9e8a8f3a9b37be70b43c6af5288 (patch) | |
tree | 7e095632660faeb5317e8f0f699ad7f10fb30e1a | |
parent | 2602b740e45cc64feb55d5a9ee8db744ab3becbb (diff) |
mmc: block: Fix cmd error reset failure path
Commit 4e1f780032c5 ("mmc: block: break out mmc_blk_rw_cmd_abort()")
assumed the request had not completed, but in one case it had. Fix that.
Fixes: 4e1f780032c5 ("mmc: block: break out mmc_blk_rw_cmd_abort()")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r-- | drivers/mmc/core/block.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index e59107ca512a..05afefcfb611 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c | |||
@@ -1701,7 +1701,8 @@ static void mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *new_req) | |||
1701 | case MMC_BLK_CMD_ERR: | 1701 | case MMC_BLK_CMD_ERR: |
1702 | req_pending = mmc_blk_rw_cmd_err(md, card, brq, old_req, req_pending); | 1702 | req_pending = mmc_blk_rw_cmd_err(md, card, brq, old_req, req_pending); |
1703 | if (mmc_blk_reset(md, card->host, type)) { | 1703 | if (mmc_blk_reset(md, card->host, type)) { |
1704 | mmc_blk_rw_cmd_abort(card, old_req); | 1704 | if (req_pending) |
1705 | mmc_blk_rw_cmd_abort(card, old_req); | ||
1705 | mmc_blk_rw_try_restart(mq, new_req); | 1706 | mmc_blk_rw_try_restart(mq, new_req); |
1706 | return; | 1707 | return; |
1707 | } | 1708 | } |