Merge "mmc: cmdq_hci: Avoid releasing clock twice during DCMD error"

This commit is contained in:
Linux Build Service Account 2017-05-01 23:56:56 -07:00 committed by Gerrit - the friendly Code Review server
commit cf05282438
2 changed files with 12 additions and 10 deletions

View file

@ -128,14 +128,11 @@ static int mmc_cmdq_thread(void *d)
ret = mq->cmdq_issue_fn(mq, mq->cmdq_req_peeked);
/*
* Don't requeue if issue_fn fails, just bug on.
* We don't expect failure here and there is no recovery other
* than fixing the actual issue if there is any.
* Don't requeue if issue_fn fails.
* Recovery will be come by completion softirq
* Also we end the request if there is a partition switch error,
* so we should not requeue the request here.
*/
if (ret)
BUG_ON(1);
} /* loop */
return 0;

View file

@ -1102,6 +1102,10 @@ skip_cqterri:
* before setting doorbell, hence one is not needed here.
*/
for_each_set_bit(tag, &comp_status, cq_host->num_slots) {
mrq = get_req_by_tag(cq_host, tag);
if (!((mrq->cmd && mrq->cmd->error) ||
mrq->cmdq_req->resp_err ||
(mrq->data && mrq->data->error))) {
/* complete the corresponding mrq */
pr_debug("%s: completing tag -> %lu\n",
mmc_hostname(mmc), tag);
@ -1110,6 +1114,7 @@ skip_cqterri:
cmdq_finish_data(mmc, tag);
}
}
}
if (status & CQIS_HAC) {
if (cq_host->ops->post_cqe_halt)