Loading drivers/mmc/card/block.c +13 −1 Original line number Diff line number Diff line Loading @@ -2636,8 +2636,20 @@ 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)) if (!mmc_blk_reset(md, card->host, type)) { if (!ret) { /* * We have successfully completed block * request and notified to upper layers. * As the reset is successful, assume * h/w is in clean state and proceed * with new request. */ BUG_ON(card->host->areq); goto start_new_req; } break; } goto cmd_abort; case MMC_BLK_RETRY: if (retry++ < 5) Loading Loading
drivers/mmc/card/block.c +13 −1 Original line number Diff line number Diff line Loading @@ -2636,8 +2636,20 @@ 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)) if (!mmc_blk_reset(md, card->host, type)) { if (!ret) { /* * We have successfully completed block * request and notified to upper layers. * As the reset is successful, assume * h/w is in clean state and proceed * with new request. */ BUG_ON(card->host->areq); goto start_new_req; } break; } goto cmd_abort; case MMC_BLK_RETRY: if (retry++ < 5) Loading