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

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

Merge "mmc: card: block: Add support for completing cmdq requests with error"

parents 47546cab 459a9321
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -3580,7 +3580,7 @@ void mmc_blk_cmdq_complete_rq(struct request *rq)
	else if (mrq->data && mrq->data->error)
		err = mrq->data->error;

	if (err || cmdq_req->resp_err) {
	if ((err || cmdq_req->resp_err) && !cmdq_req->skip_err_handling) {
		pr_err("%s: %s: txfr error(%d)/resp_err(%d)\n",
				mmc_hostname(mrq->host), __func__, err,
				cmdq_req->resp_err);
@@ -3617,6 +3617,17 @@ void mmc_blk_cmdq_complete_rq(struct request *rq)
		blk_end_request_all(rq, err);
		goto out;
	}
	/*
	 * In case of error, cmdq_req->data.bytes_xfered is set to 0.
	 * If we call blk_end_request() with nr_bytes as 0 then the request
	 * never gets completed. So in case of error, to complete a request
	 * with error we should use blk_end_request_all().
	 */
	if (err && cmdq_req->skip_err_handling) {
		cmdq_req->skip_err_handling = false;
		blk_end_request_all(rq, err);
		goto out;
	}

	blk_end_request(rq, err, cmdq_req->data.bytes_xfered);