Hi Daniel, Comments inline.. > -----Original Message----- > From: Daniel Wagner <dwagner@xxxxxxx> > Sent: Tuesday, December 1, 2020 2:32 PM > To: Nilesh Javali <njavali@xxxxxxxxxxx> > Cc: martin.petersen@xxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; GR-QLogic- > Storage-Upstream <GR-QLogic-Storage-Upstream@xxxxxxxxxxx> > Subject: Re: [PATCH 05/15] qla2xxx: Don't check for fw_started while posting > nvme command > > On Tue, Dec 01, 2020 at 12:27:20AM -0800, Nilesh Javali wrote: > > From: Saurav Kashyap <skashyap@xxxxxxxxxxx> > > > > NVMe commands can come only after successful addition of rport and nvme > > connect, and rport is only registered after FW started bit is set. Remove the > > redundant check. > > > > Signed-off-by: Saurav Kashyap <skashyap@xxxxxxxxxxx> > > Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx> > > --- > > drivers/scsi/qla2xxx/qla_nvme.c | 12 ++++-------- > > 1 file changed, 4 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/scsi/qla2xxx/qla_nvme.c > b/drivers/scsi/qla2xxx/qla_nvme.c > > index b7a1dc24db38..d4159d5a4ffd 100644 > > --- a/drivers/scsi/qla2xxx/qla_nvme.c > > +++ b/drivers/scsi/qla2xxx/qla_nvme.c > > @@ -554,19 +554,15 @@ static int qla_nvme_post_cmd(struct > nvme_fc_local_port *lport, > > > > fcport = qla_rport->fcport; > > > > - if (!qpair || !fcport) > > - return -ENODEV; > > - > > - if (!qpair->fw_started || fcport->deleted) > > + if (unlikely(!qpair || !fcport || fcport->deleted)) > > return -EBUSY; > > This reverts the fix from patch #1 in this series. What's the reasoning > that needs to return EBUSY when !qpair || !fcport is true? <SK> Ideally driver should not hit (!qpair || !fcport) case. The patch was to remove fw_started flag and consolidate other checks. We want IO to retry until remote port is deleted and below condition is hit. ----------<condition>-------- if (!(fcport->nvme_flag & NVME_FLAG_REGISTERED)) return rval; ----------<condition>--------- Thanks, ~Saurav