aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bnx2fc/bnx2fc_els.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/bnx2fc/bnx2fc_els.c')
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_els.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c
index ce0ce3e32f33..bdbbb13b8534 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_els.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_els.c
@@ -854,7 +854,6 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
854 struct fc_exch *exch = fc_seq_exch(seq); 854 struct fc_exch *exch = fc_seq_exch(seq);
855 struct fc_lport *lport = exch->lp; 855 struct fc_lport *lport = exch->lp;
856 u8 *mac; 856 u8 *mac;
857 struct fc_frame_header *fh;
858 u8 op; 857 u8 op;
859 858
860 if (IS_ERR(fp)) 859 if (IS_ERR(fp))
@@ -862,13 +861,6 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
862 861
863 mac = fr_cb(fp)->granted_mac; 862 mac = fr_cb(fp)->granted_mac;
864 if (is_zero_ether_addr(mac)) { 863 if (is_zero_ether_addr(mac)) {
865 fh = fc_frame_header_get(fp);
866 if (fh->fh_type != FC_TYPE_ELS) {
867 printk(KERN_ERR PFX "bnx2fc_flogi_resp:"
868 "fh_type != FC_TYPE_ELS\n");
869 fc_frame_free(fp);
870 return;
871 }
872 op = fc_frame_payload_op(fp); 864 op = fc_frame_payload_op(fp);
873 if (lport->vport) { 865 if (lport->vport) {
874 if (op == ELS_LS_RJT) { 866 if (op == ELS_LS_RJT) {
@@ -878,12 +870,10 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
878 return; 870 return;
879 } 871 }
880 } 872 }
881 if (fcoe_ctlr_recv_flogi(fip, lport, fp)) { 873 fcoe_ctlr_recv_flogi(fip, lport, fp);
882 fc_frame_free(fp);
883 return;
884 }
885 } 874 }
886 fip->update_mac(lport, mac); 875 if (!is_zero_ether_addr(mac))
876 fip->update_mac(lport, mac);
887done: 877done:
888 fc_lport_flogi_resp(seq, fp, lport); 878 fc_lport_flogi_resp(seq, fp, lport);
889} 879}
@@ -910,7 +900,7 @@ struct fc_seq *bnx2fc_elsct_send(struct fc_lport *lport, u32 did,
910{ 900{
911 struct fcoe_port *port = lport_priv(lport); 901 struct fcoe_port *port = lport_priv(lport);
912 struct bnx2fc_interface *interface = port->priv; 902 struct bnx2fc_interface *interface = port->priv;
913 struct fcoe_ctlr *fip = &interface->ctlr; 903 struct fcoe_ctlr *fip = bnx2fc_to_ctlr(interface);
914 struct fc_frame_header *fh = fc_frame_header_get(fp); 904 struct fc_frame_header *fh = fc_frame_header_get(fp);
915 905
916 switch (op) { 906 switch (op) {