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.