|
@@ -854,7 +854,6 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
|
|
|
struct fc_exch *exch = fc_seq_exch(seq);
|
|
|
struct fc_lport *lport = exch->lp;
|
|
|
u8 *mac;
|
|
|
- struct fc_frame_header *fh;
|
|
|
u8 op;
|
|
|
|
|
|
if (IS_ERR(fp))
|
|
@@ -862,13 +861,6 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
|
|
|
|
|
|
mac = fr_cb(fp)->granted_mac;
|
|
|
if (is_zero_ether_addr(mac)) {
|
|
|
- fh = fc_frame_header_get(fp);
|
|
|
- if (fh->fh_type != FC_TYPE_ELS) {
|
|
|
- printk(KERN_ERR PFX "bnx2fc_flogi_resp:"
|
|
|
- "fh_type != FC_TYPE_ELS\n");
|
|
|
- fc_frame_free(fp);
|
|
|
- return;
|
|
|
- }
|
|
|
op = fc_frame_payload_op(fp);
|
|
|
if (lport->vport) {
|
|
|
if (op == ELS_LS_RJT) {
|
|
@@ -878,12 +870,10 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
- if (fcoe_ctlr_recv_flogi(fip, lport, fp)) {
|
|
|
- fc_frame_free(fp);
|
|
|
- return;
|
|
|
- }
|
|
|
+ fcoe_ctlr_recv_flogi(fip, lport, fp);
|
|
|
}
|
|
|
- fip->update_mac(lport, mac);
|
|
|
+ if (!is_zero_ether_addr(mac))
|
|
|
+ fip->update_mac(lport, mac);
|
|
|
done:
|
|
|
fc_lport_flogi_resp(seq, fp, lport);
|
|
|
}
|