diff options
Diffstat (limited to 'drivers/scsi/bfa/fcpim.c')
-rw-r--r-- | drivers/scsi/bfa/fcpim.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/scsi/bfa/fcpim.c b/drivers/scsi/bfa/fcpim.c index d090f7a6368a..6b8976ad22fa 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: |