OSDN Git Service

mmc: card: Fixup request missing in mmc_blk_issue_rw_rq
[uclinux-h8/linux.git] / drivers / mmc / card / block.c
index fc03171..c9c3d20 100644 (file)
@@ -1920,9 +1920,11 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *rqc)
                        break;
                case MMC_BLK_CMD_ERR:
                        ret = mmc_blk_cmd_err(md, card, brq, req, ret);
-                       if (!mmc_blk_reset(md, card->host, type))
-                               break;
-                       goto cmd_abort;
+                       if (mmc_blk_reset(md, card->host, type))
+                               goto cmd_abort;
+                       if (!ret)
+                               goto start_new_req;
+                       break;
                case MMC_BLK_RETRY:
                        retune_retry_done = brq->retune_retry_done;
                        if (retry++ < 5)