RE: [EXT] Re: [PATCH v3 1/1] scsi: ufs: fix LRB pointer incorrect initialization issue

From: Bean Huo (beanhuo)
Date: Tue Mar 10 2020 - 03:53:34 EST


Hi, Bart

> Subject: [EXT] Re: [PATCH v3 1/1] scsi: ufs: fix LRB pointer incorrect initialization
> issue
>
> On 2020-03-09 09:10, huobean@xxxxxxxxx wrote:
> > @@ -4834,6 +4829,7 @@ static void __ufshcd_transfer_req_compl(struct
> ufs_hba *hba,
> > continue;
> > cmd = blk_mq_rq_to_pdu(req);
> > lrbp = scsi_cmd_priv(cmd);
> > + ufshcd_init_lrb(hba, lrbp, index);
> > if (ufshcd_is_scsi(req)) {
> > ufshcd_add_command_trace(hba, req, "complete");
> > result = ufshcd_transfer_rsp_status(hba, lrbp);
>
> This ufshcd_init_lrb() call looks incorrect to me. I think that
> ufshcd_init_lrb() should only be called before a request is submitted to the UFS
> controller and also that ufshcd_init_lrb() should not be called from the
> completion path.
>

__ufshcd_transfer_req_compl()
ufshcd_transfer_rsp_status() will access lrbp->ucd_rsp_ptr.
Without calling ufshcd_init_lrb() here, there will be an error.

//Bean


> Thanks,
>
> Bart.