Message ID | 20210531104308.391842-5-huobean@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/4] scsi: ufs: Cleanup ufshcd_add_command_trace() | expand |
Hi Bean, On 2021-05-31 18:43, Bean Huo wrote: > From: Bean Huo <beanhuo@micron.com> > > Since devman_upiu_cmd is not COMMAND UPIU, and doesn't have > CDB, it is better to use UPIU query trace, which provides more > helpful information for issue shooting. > > Signed-off-by: Bean Huo <beanhuo@micron.com> > --- > drivers/scsi/ufs/ufshcd.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c > index c84bd8e045f6..deb9e232b349 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -6701,6 +6701,7 @@ static int ufshcd_issue_devman_upiu_cmd(struct > ufs_hba *hba, > > hba->dev_cmd.complete = &wait; > > + ufshcd_add_query_upiu_trace(hba, UFS_QUERY_SEND, lrbp->ucd_req_ptr); > /* Make sure descriptors are ready before ringing the doorbell */ > wmb(); > spin_lock_irqsave(hba->host->host_lock, flags); > @@ -6732,6 +6733,8 @@ static int ufshcd_issue_devman_upiu_cmd(struct > ufs_hba *hba, > err = -EINVAL; > } > } > + ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : > UFS_QUERY_COMP, > + (struct utp_upiu_req *)lrbp->ucd_rsp_ptr); > > out: > blk_put_request(req); What about ufshcd_exec_dev_cmd()? Thanks, Can Guo.
On Wed, 2021-06-02 at 10:29 +0800, Can Guo wrote: > > spin_lock_irqsave(hba->host->host_lock, flags); > > @@ -6732,6 +6733,8 @@ static int > > ufshcd_issue_devman_upiu_cmd(struct > > ufs_hba *hba, > > err = -EINVAL; > > } > > } > > + ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : > > UFS_QUERY_COMP, > > + (struct utp_upiu_req *)lrbp- > > >ucd_rsp_ptr); > > out: > > blk_put_request(req); > > > What about ufshcd_exec_dev_cmd()? > Can, thanks for your veiew. yes, ufshcd_exec_dev_cmd() is only to send UPIU command frame, and doesn't include CDB. It already uses ufshcd_add_query_upiu_trace() to trace UPIU frame. Kind regards, Bean > Thanks, > > Can Guo.
On 2021-06-03 05:05, Bean Huo wrote: > On Wed, 2021-06-02 at 10:29 +0800, Can Guo wrote: >> > spin_lock_irqsave(hba->host->host_lock, flags); >> > @@ -6732,6 +6733,8 @@ static int >> > ufshcd_issue_devman_upiu_cmd(struct >> > ufs_hba *hba, >> > err = -EINVAL; >> > } >> > } >> > + ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : >> > UFS_QUERY_COMP, >> > + (struct utp_upiu_req *)lrbp- >> > >ucd_rsp_ptr); >> > out: >> > blk_put_request(req); >> >> >> What about ufshcd_exec_dev_cmd()? >> > > > Can, > thanks for your veiew. > yes, ufshcd_exec_dev_cmd() is only to send > UPIU command frame, and doesn't include CDB. It already uses > ufshcd_add_query_upiu_trace() to trace UPIU frame. > Oh, sorry, I missed it. Reviewed-by: Can Guo <cang@codeaurora.org> > Kind regards, > Bean > >> Thanks, >> >> Can Guo.
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index c84bd8e045f6..deb9e232b349 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6701,6 +6701,7 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba, hba->dev_cmd.complete = &wait; + ufshcd_add_query_upiu_trace(hba, UFS_QUERY_SEND, lrbp->ucd_req_ptr); /* Make sure descriptors are ready before ringing the doorbell */ wmb(); spin_lock_irqsave(hba->host->host_lock, flags); @@ -6732,6 +6733,8 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba, err = -EINVAL; } } + ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : UFS_QUERY_COMP, + (struct utp_upiu_req *)lrbp->ucd_rsp_ptr); out: blk_put_request(req);