Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9570cb1 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mmc: core: fix block request queue hang during data crc errors"

parents 88710092 0bc5eaae
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -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)