mmc: sdhci: finish the request if sdhc is in bad state

In the current code, if sdhci_check_state returns true a tasklet is
scheduled which doesn't complete the request if host->mrq is NULL,
which is the case, if sdhci is in bad state. This would make the
mmcqd thread wait for completion infinitely.
Hence, complete the request if sdhci_check_state returns true instead
of scheduling the tasklet.

CRs-Fixed: 615537
Change-Id: I8e2950c3999ac3806f9d631c52d86f0dc13b992f
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
This commit is contained in:
Asutosh Das 2014-02-21 11:28:36 +05:30 committed by Subhash Jadavani
parent 1fc0342450
commit 03cfbbc1fc

View file

@ -1575,7 +1575,8 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
mrq->cmd->error = -EIO;
if (mrq->data)
mrq->data->error = -EIO;
tasklet_schedule(&host->finish_tasklet);
mmc_request_done(host->mmc, mrq);
sdhci_runtime_pm_put(host);
return;
}