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

Commit 275ca9f6 authored by Ram Prakash Gupta's avatar Ram Prakash Gupta
Browse files

mmc: core: Take reference of response error before block end request



Device is getting stuck during boot due to commit <38af8977> ("mmc:
card: WARN_ON in cmdq completion context"). Here response error
variable is getting freed in block end request and set with some
garbage value.

Fix this issue by taking the reference of response error before block
end request.

Change-Id: I750b63efc6936789295b05c521f5140818fdfeda
Signed-off-by: default avatarRam Prakash Gupta <rampraka@codeaurora.org>
parent 8c126e98
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3052,6 +3052,8 @@ void mmc_blk_cmdq_complete_rq(struct request *rq)
		err = mrq->cmd->error;
	else if (mrq->data && mrq->data->error)
		err = mrq->data->error;
	if (cmdq_req->resp_err)
		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",
@@ -3107,7 +3109,7 @@ void mmc_blk_cmdq_complete_rq(struct request *rq)
out:

	mmc_cmdq_clk_scaling_stop_busy(host, true, is_dcmd);
	if (!(err || cmdq_req->resp_err)) {
	if (!err) {
		mmc_host_clk_release(host);
		wake_up(&ctx_info->wait);
		mmc_put_card(host->card);