Message ID | 20211119195743.2817-11-bvanassche@acm.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | UFS patches for kernel v5.17 | expand |
On 19/11/2021 21:57, Bart Van Assche wrote: > Commit 7252a3603015 ("scsi: ufs: Avoid busy-waiting by eliminating tag > conflicts") guarantees that 'tag' is not in use by any SCSI command. > Remove the check that returns early if a conflict occurs. > > Acked-by: Avri Altman <avri.altman@wdc.com> > Reviewed-by: Bean Huo <beanhuo@micron.com> > Signed-off-by: Bart Van Assche <bvanassche@acm.org> > --- > drivers/scsi/ufs/ufshcd.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c > index ff9532968ae7..fced4528ee90 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -6730,11 +6730,6 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba, > tag = req->tag; > WARN_ONCE(tag < 0, "Invalid tag %d\n", tag); > > - if (unlikely(test_bit(tag, &hba->outstanding_reqs))) { > - err = -EBUSY; > - goto out; > - } > - > lrbp = &hba->lrb[tag]; > WARN_ON(lrbp->cmd); > lrbp->cmd = NULL; > @@ -6802,8 +6797,6 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba, > ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : UFS_QUERY_COMP, > (struct utp_upiu_req *)lrbp->ucd_rsp_ptr); > > -out: > - blk_mq_free_request(req); Removing blk_mq_free_request() looks unintended > out_unlock: > up_read(&hba->clk_scaling_lock); > return err; >
On 11/24/21 3:11 AM, Adrian Hunter wrote: > On 19/11/2021 21:57, Bart Van Assche wrote: >> -out: >> - blk_mq_free_request(req); > > Removing blk_mq_free_request() looks unintended Oops, that removal was indeed unintended. Will fix. Thanks, Bart.
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index ff9532968ae7..fced4528ee90 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6730,11 +6730,6 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba, tag = req->tag; WARN_ONCE(tag < 0, "Invalid tag %d\n", tag); - if (unlikely(test_bit(tag, &hba->outstanding_reqs))) { - err = -EBUSY; - goto out; - } - lrbp = &hba->lrb[tag]; WARN_ON(lrbp->cmd); lrbp->cmd = NULL; @@ -6802,8 +6797,6 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba, ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : UFS_QUERY_COMP, (struct utp_upiu_req *)lrbp->ucd_rsp_ptr); -out: - blk_mq_free_request(req); out_unlock: up_read(&hba->clk_scaling_lock); return err;