Re: [PATCH v1] scsi: ufs: core: print trs for pending requests in MCQ mode

From: Ziqi Chen
Date: Mon Mar 13 2023 - 07:31:22 EST


Hi Bart,

Good idea, let met re-design it.

Thanks,
Ziqi

On 3/10/2023 1:28 AM, Bart Van Assche wrote:
On 3/8/23 21:01, Ziqi Chen wrote:
+static void ufshcd_print_trs_all(struct ufs_hba *hba, bool pr_prdt)
+{
+    const struct ufshcd_lrb *lrbp;
+    int tag;
+
+    for (tag = 0; tag < hba->nutrs; tag++) {
+        lrbp = &hba->lrb[tag];
+
+        if (lrbp->cmd)
+            ufshcd_print_tr(hba, tag, pr_prdt);
      }
  }

There is a race in this code: lrbp->cmd may be cleared after it has been read and before or while ufshcd_print_tr() is in progress. How about preventing that race by blk_mq_tagset_busy_iter() to iterate over pending SCSI commands?

Thanks,

Bart.