On 3/7/23 20:01, Bao D. Nguyen wrote:
+ if (ufshcd_mcq_cqe_search(hba, hwq, tag)) { + dev_err(hba->dev, "%s: cmd found in cq. hwq=%d, tag=%d\n", + __func__, hwq->id, tag); + /* + * The command should not be 'stuck' in the CQ for such a long time. + * Is interrupt missing? Process the CQEs here. If the interrupt is + * invoked at a later time, the CQ will be empty because the CQEs + * are already processed here. + */ + ufshcd_mcq_poll_cqe_lock(hba, hwq); + err = SUCCESS; + goto out; + }
Please remove the above code and also the definition of the ufshcd_mcq_cqe_search() function. The SCSI error handler submits an abort to deal with command processing timeouts. ufshcd_mcq_cqe_search() can only return true in case of a software bug at the host side. Addressing such bugs is out of scope for the SCSI error handler.
Thanks, Bart.