]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scsi: qla2xxx: Reset the logo flag, after target re-login.
authorQuinn Tran <quinn.tran@cavium.com>
Wed, 30 Aug 2017 17:16:50 +0000 (10:16 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 31 Aug 2017 02:15:29 +0000 (22:15 -0400)
After relogin is sucessful, "send_els_logo" flag needs to be
reinitialized. This will allow next re-login to happen successfully.

In target mode, this flag was not reset correctly, causing IO's failure
during reset recovery and port ON/OFF test cases from initiator.

Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
Signed-off-by: Sawan Chandak <sawan.chandak@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_target.c

index 73a6c3abb11567270a06a506cf8d8bc286bedc04..b5b48ddca9621d82bb9b7b674b8eb9f79f083fbe 100644 (file)
@@ -1464,6 +1464,7 @@ qla24xx_handle_plogi_done_event(struct scsi_qla_host *vha, struct event_arg *ea)
                                __func__, __LINE__, ea->fcport->port_name);
                        ea->fcport->chip_reset = vha->hw->base_qpair->chip_reset;
                        ea->fcport->logout_on_delete = 1;
+                       ea->fcport->send_els_logo = 0;
                        qla24xx_post_gpdb_work(vha, ea->fcport, 0);
                }
                break;
index 192554b1536fa0b76b3e20d2bdf725e75892eb70..f05cfc83c9c8d0110c253d0e2331a7e970f72d26 100644 (file)
@@ -585,11 +585,13 @@ void qla2x00_async_nack_sp_done(void *s, int res)
                sp->fcport->fw_login_state = DSC_LS_PLOGI_COMP;
                sp->fcport->logout_on_delete = 1;
                sp->fcport->plogi_nack_done_deadline = jiffies + HZ;
+               sp->fcport->send_els_logo = 0;
                break;
 
        case SRB_NACK_PRLI:
                sp->fcport->fw_login_state = DSC_LS_PRLI_COMP;
                sp->fcport->deleted = 0;
+               sp->fcport->send_els_logo = 0;
 
                if (!sp->fcport->login_succ &&
                    !IS_SW_RESV_ADDR(sp->fcport->d_id)) {