Message ID | 20210422153414.4022-1-a.kovaleva@yadro.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | scsi: qla2xxx: Prevent PRLI in target mode | expand |
> On Apr 22, 2021, at 10:34 AM, Anastasia Kovaleva <a.kovaleva@yadro.com> wrote: > > In a case when the initiator in P2P mode by some circumstances do not > send PRLI, the target, in a case when the target port’s WWPN is less > than initiator’s one, changes the discovery state in DSC_GNL, and when > gnl completes, it sends PRLI to the initiator. > > Usually the initiator in P2P mode always sends PRLI. We catch this issue > on Linux stable v5.4.6 https://www.spinics.net/lists/stable/msg458515.html > > The change fixes this particular corner case in the behaviour of the > P2P mod target login state machine. > > Fixes: a9ed06d4e640a ("scsi: qla2xxx: Allow PLOGI in target mode") > Signed-off-by: Anastasia Kovaleva <a.kovaleva@yadro.com> > Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com> > --- > drivers/scsi/qla2xxx/qla_init.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c > index f01f07116bd3..71f79c988fdc 100644 > --- a/drivers/scsi/qla2xxx/qla_init.c > +++ b/drivers/scsi/qla2xxx/qla_init.c > @@ -1194,6 +1194,9 @@ static int qla24xx_post_prli_work(struct scsi_qla_host *vha, fc_port_t *fcport) > { > struct qla_work_evt *e; > > + if (vha->host->active_mode == MODE_TARGET) > + return QLA_FUNCTION_FAILED; > + > e = qla2x00_alloc_work(vha, QLA_EVT_PRLI); > if (!e) > return QLA_FUNCTION_FAILED; > -- > 2.30.2 > Looks Good. Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> -- Himanshu Madhani Oracle Linux Engineering
On Thu, 22 Apr 2021 18:34:14 +0300, Anastasia Kovaleva wrote: > In a case when the initiator in P2P mode by some circumstances do not > send PRLI, the target, in a case when the target port’s WWPN is less > than initiator’s one, changes the discovery state in DSC_GNL, and when > gnl completes, it sends PRLI to the initiator. > > Usually the initiator in P2P mode always sends PRLI. We catch this issue > on Linux stable v5.4.6 https://www.spinics.net/lists/stable/msg458515.html > > [...] Applied to 5.13/scsi-fixes, thanks! [1/1] scsi: qla2xxx: Prevent PRLI in target mode https://git.kernel.org/mkp/scsi/c/fcb16d9a8ecf
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index f01f07116bd3..71f79c988fdc 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -1194,6 +1194,9 @@ static int qla24xx_post_prli_work(struct scsi_qla_host *vha, fc_port_t *fcport) { struct qla_work_evt *e; + if (vha->host->active_mode == MODE_TARGET) + return QLA_FUNCTION_FAILED; + e = qla2x00_alloc_work(vha, QLA_EVT_PRLI); if (!e) return QLA_FUNCTION_FAILED;