|
@@ -1447,13 +1447,7 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp,
|
|
|
}
|
|
|
|
|
|
did = fc_frame_did(fp);
|
|
|
-
|
|
|
- if (!did) {
|
|
|
- FC_LPORT_DBG(lport, "Bad FLOGI response\n");
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
- if (fc_frame_payload_op(fp) == ELS_LS_ACC) {
|
|
|
+ if (fc_frame_payload_op(fp) == ELS_LS_ACC && did) {
|
|
|
flp = fc_frame_payload_get(fp, sizeof(*flp));
|
|
|
if (flp) {
|
|
|
mfs = ntohs(flp->fl_csp.sp_bb_data) &
|
|
@@ -1492,8 +1486,10 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp,
|
|
|
fc_lport_enter_dns(lport);
|
|
|
}
|
|
|
}
|
|
|
- } else
|
|
|
+ } else {
|
|
|
+ FC_LPORT_DBG(lport, "FLOGI RJT or bad response\n");
|
|
|
fc_lport_error(lport, fp);
|
|
|
+ }
|
|
|
|
|
|
out:
|
|
|
fc_frame_free(fp);
|