aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVijaya Mohan Guvva <vmohan@brocade.com>2013-11-21 04:37:45 -0500
committerJames Bottomley <JBottomley@Parallels.com>2013-12-19 10:39:05 -0500
commit9781851f47a7fba2013f879f13cfdadfcdc879dc (patch)
tree74f6a828fe2d92f27033772e8808f1eb4477a761
parentda3e0bee18f7f36a63537219e18a03557a21a41b (diff)
[SCSI] bfa: LUN discovery issue in direct attach mode
In direct attach mode, if port features like QoS/Trunk/FEC/CR are enabled, driver can receive PLOGI from the target before firmware notifies lport online to the driver. In case the lport is not yet online and a PLOGI is received, send a reject to the peer port, instead of dropping it on the floor. Signed-off-by: Vijaya Mohan Guvva <vmohan@brocade.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r--drivers/scsi/bfa/bfa_fcs_lport.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
index f5e4e61a0fd7..ff75ef891755 100644
--- a/drivers/scsi/bfa/bfa_fcs_lport.c
+++ b/drivers/scsi/bfa/bfa_fcs_lport.c
@@ -773,7 +773,20 @@ bfa_fcs_lport_uf_recv(struct bfa_fcs_lport_s *lport,
773 bfa_trc(lport->fcs, fchs->type); 773 bfa_trc(lport->fcs, fchs->type);
774 774
775 if (!bfa_fcs_lport_is_online(lport)) { 775 if (!bfa_fcs_lport_is_online(lport)) {
776 bfa_stats(lport, uf_recv_drops); 776 /*
777 * In direct attach topology, it is possible to get a PLOGI
778 * before the lport is online due to port feature
779 * (QoS/Trunk/FEC/CR), so send a rjt
780 */
781 if ((fchs->type == FC_TYPE_ELS) &&
782 (els_cmd->els_code == FC_ELS_PLOGI)) {
783 bfa_fcs_lport_send_ls_rjt(lport, fchs,
784 FC_LS_RJT_RSN_UNABLE_TO_PERF_CMD,
785 FC_LS_RJT_EXP_NO_ADDL_INFO);
786 bfa_stats(lport, plogi_rcvd);
787 } else
788 bfa_stats(lport, uf_recv_drops);
789
777 return; 790 return;
778 } 791 }
779 792