scsi: lpfc: FCoE VPort enable-disable does not bring up the VPort
authorJames Smart <james.smart@broadcom.com>
Mon, 19 Dec 2016 23:07:25 +0000 (15:07 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 5 Jan 2017 05:21:12 +0000 (00:21 -0500)
FCoE VPort enable-disable does not bring up the VPort.
VPI structure needed to be initialized before being re-registered.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_vport.c

index c27f4b7245477ba5b3e454fd0dc39e8e1903819e..e18bbc66e83b1fdebd5b928da8b7a1d30022d0da 100644 (file)
@@ -537,6 +537,12 @@ enable_vport(struct fc_vport *fc_vport)
 
        spin_lock_irq(shost->host_lock);
        vport->load_flag |= FC_LOADING;
+       if (vport->fc_flag & FC_VPORT_NEEDS_INIT_VPI) {
+               spin_unlock_irq(shost->host_lock);
+               lpfc_issue_init_vpi(vport);
+               goto out;
+       }
+
        vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
        spin_unlock_irq(shost->host_lock);
 
@@ -557,6 +563,8 @@ enable_vport(struct fc_vport *fc_vport)
        } else {
                lpfc_vport_set_state(vport, FC_VPORT_FAILED);
        }
+
+out:
        lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
                         "1827 Vport Enabled.\n");
        return VPORT_OK;