aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bfa/fcpim.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/bfa/fcpim.c')
-rw-r--r--drivers/scsi/bfa/fcpim.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/scsi/bfa/fcpim.c b/drivers/scsi/bfa/fcpim.c
index d090f7a6368..6b8976ad22f 100644
--- a/drivers/scsi/bfa/fcpim.c
+++ b/drivers/scsi/bfa/fcpim.c
@@ -175,8 +175,12 @@ bfa_fcs_itnim_sm_prli(struct bfa_fcs_itnim_s *itnim,
175 175
176 switch (event) { 176 switch (event) {
177 case BFA_FCS_ITNIM_SM_RSP_OK: 177 case BFA_FCS_ITNIM_SM_RSP_OK:
178 bfa_sm_set_state(itnim, bfa_fcs_itnim_sm_hcb_online); 178 if (itnim->rport->scsi_function == BFA_RPORT_INITIATOR) {
179 bfa_itnim_online(itnim->bfa_itnim, itnim->seq_rec); 179 bfa_sm_set_state(itnim, bfa_fcs_itnim_sm_initiator);
180 } else {
181 bfa_sm_set_state(itnim, bfa_fcs_itnim_sm_hcb_online);
182 bfa_itnim_online(itnim->bfa_itnim, itnim->seq_rec);
183 }
180 break; 184 break;
181 185
182 case BFA_FCS_ITNIM_SM_RSP_ERROR: 186 case BFA_FCS_ITNIM_SM_RSP_ERROR:
@@ -194,9 +198,7 @@ bfa_fcs_itnim_sm_prli(struct bfa_fcs_itnim_s *itnim,
194 198
195 case BFA_FCS_ITNIM_SM_INITIATOR: 199 case BFA_FCS_ITNIM_SM_INITIATOR:
196 bfa_sm_set_state(itnim, bfa_fcs_itnim_sm_initiator); 200 bfa_sm_set_state(itnim, bfa_fcs_itnim_sm_initiator);
197 /* 201 bfa_fcxp_discard(itnim->fcxp);
198 * dont discard fcxp. accept will reach same state
199 */
200 break; 202 break;
201 203
202 case BFA_FCS_ITNIM_SM_DELETE: 204 case BFA_FCS_ITNIM_SM_DELETE:
@@ -476,7 +478,7 @@ bfa_fcs_itnim_prli_response(void *fcsarg, struct bfa_fcxp_s *fcxp, void *cbarg,
476 BFA_RPORT_INITIATOR; 478 BFA_RPORT_INITIATOR;
477 itnim->stats.prli_rsp_acc++; 479 itnim->stats.prli_rsp_acc++;
478 bfa_sm_send_event(itnim, 480 bfa_sm_send_event(itnim,
479 BFA_FCS_ITNIM_SM_INITIATOR); 481 BFA_FCS_ITNIM_SM_RSP_OK);
480 return; 482 return;
481 } 483 }
482 484
@@ -803,7 +805,7 @@ bfa_fcs_fcpim_uf_recv(struct bfa_fcs_itnim_s *itnim, struct fchs_s *fchs,
803 805
804 switch (els_cmd->els_code) { 806 switch (els_cmd->els_code) {
805 case FC_ELS_PRLO: 807 case FC_ELS_PRLO:
806 /* bfa_sm_send_event(itnim, BFA_FCS_ITNIM_SM_PRLO); */ 808 bfa_fcs_rport_prlo(itnim->rport, fchs->ox_id);
807 break; 809 break;
808 810
809 default: 811 default: