aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/fcoe/libfcoe.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/scsi/fcoe/libfcoe.c b/drivers/scsi/fcoe/libfcoe.c
index 62ba0f39c6bd..a7ecafb9a507 100644
--- a/drivers/scsi/fcoe/libfcoe.c
+++ b/drivers/scsi/fcoe/libfcoe.c
@@ -447,14 +447,10 @@ int fcoe_ctlr_els_send(struct fcoe_ctlr *fip, struct sk_buff *skb)
447 u16 old_xid; 447 u16 old_xid;
448 u8 op; 448 u8 op;
449 449
450 if (fip->state == FIP_ST_NON_FIP)
451 return 0;
452
453 fh = (struct fc_frame_header *)skb->data; 450 fh = (struct fc_frame_header *)skb->data;
454 op = *(u8 *)(fh + 1); 451 op = *(u8 *)(fh + 1);
455 452
456 switch (op) { 453 if (op == ELS_FLOGI) {
457 case ELS_FLOGI:
458 old_xid = fip->flogi_oxid; 454 old_xid = fip->flogi_oxid;
459 fip->flogi_oxid = ntohs(fh->fh_ox_id); 455 fip->flogi_oxid = ntohs(fh->fh_ox_id);
460 if (fip->state == FIP_ST_AUTO) { 456 if (fip->state == FIP_ST_AUTO) {
@@ -466,6 +462,15 @@ int fcoe_ctlr_els_send(struct fcoe_ctlr *fip, struct sk_buff *skb)
466 fip->map_dest = 1; 462 fip->map_dest = 1;
467 return 0; 463 return 0;
468 } 464 }
465 if (fip->state == FIP_ST_NON_FIP)
466 fip->map_dest = 1;
467 }
468
469 if (fip->state == FIP_ST_NON_FIP)
470 return 0;
471
472 switch (op) {
473 case ELS_FLOGI:
469 op = FIP_DT_FLOGI; 474 op = FIP_DT_FLOGI;
470 break; 475 break;
471 case ELS_FDISC: 476 case ELS_FDISC: