Lines Matching refs:vport

53 inline void lpfc_vport_set_state(struct lpfc_vport *vport,
56 struct fc_vport *fc_vport = vport->fc_vport;
76 vport->port_state = LPFC_VPORT_FAILED;
79 vport->port_state = LPFC_VPORT_UNKNOWN;
118 lpfc_vport_sparm(struct lpfc_hba *phba, struct lpfc_vport *vport)
131 rc = lpfc_read_sparam(phba, pmb, vport->vpi);
139 * this per vport to start the FDISC. If the mailbox fails,
146 pmb->vport = vport;
150 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
158 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
170 memcpy(&vport->fc_sparam, mp->virt, sizeof (struct serv_parm));
171 memcpy(&vport->fc_nodename, &vport->fc_sparam.nodeName,
173 memcpy(&vport->fc_portname, &vport->fc_sparam.portName,
204 struct lpfc_vport *vport;
208 list_for_each_entry(vport, &phba->port_list, listentry) {
209 if (vport == new_vport)
212 if (memcmp(&vport->fc_sparam.portName,
225 * @vport: The virtual port for which this call is being executed.
228 * to enforce a synchronous execution of vport
238 static void lpfc_discovery_wait(struct lpfc_vport *vport)
240 struct lpfc_hba *phba = vport->phba;
257 if ((vport->num_disc_nodes > 0) ||
258 (vport->fc_flag & wait_flags) ||
259 ((vport->port_state > LPFC_VPORT_FAILED) &&
260 (vport->port_state < LPFC_VPORT_READY))) {
261 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT,
266 vport->port_state, vport->fc_flag,
267 vport->num_disc_nodes,
272 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT,
276 vport->port_state, vport->fc_flag,
284 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
287 vport->port_state, vport->fc_flag,
298 struct lpfc_vport *vport = NULL;
342 vport = lpfc_create_port(phba, instance, &fc_vport->dev);
343 if (!vport) {
351 vport->vpi = vpi;
352 lpfc_debugfs_initialize(vport);
354 if ((status = lpfc_vport_sparm(phba, vport))) {
356 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
360 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
366 destroy_port(vport);
370 u64_to_wwn(fc_vport->node_name, vport->fc_nodename.u.wwn);
371 u64_to_wwn(fc_vport->port_name, vport->fc_portname.u.wwn);
373 memcpy(&vport->fc_sparam.portName, vport->fc_portname.u.wwn, 8);
374 memcpy(&vport->fc_sparam.nodeName, vport->fc_nodename.u.wwn, 8);
376 if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") ||
377 !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) {
378 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
382 destroy_port(vport);
387 if (!lpfc_unique_wwpn(phba, vport)) {
388 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
392 destroy_port(vport);
397 /* Create binary sysfs attribute for vport */
398 lpfc_alloc_sysfs_attr(vport);
401 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth;
404 vport->cfg_enable_fc4_type = LPFC_ENABLE_FCP;
406 *(struct lpfc_vport **)fc_vport->dd_data = vport;
407 vport->fc_vport = fc_vport;
410 vport->load_flag |= FC_ALLOW_FDMI;
414 vport->fdmi_hba_mask = phba->pport->fdmi_hba_mask;
415 vport->fdmi_port_mask = phba->pport->fdmi_port_mask;
424 rc = lpfc_sli4_init_vpi(vport);
438 vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI;
439 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN);
447 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN);
453 lpfc_vport_set_state(vport, FC_VPORT_DISABLED);
465 lpfc_set_disctmo(vport);
466 lpfc_initial_fdisc(vport);
468 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP);
469 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
473 lpfc_vport_set_state(vport, FC_VPORT_FAILED);
478 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
480 lpfc_host_attrib_init(lpfc_shost_from_vport(vport));
486 lpfc_send_npiv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
489 struct lpfc_hba *phba = vport->phba;
502 rc = lpfc_issue_els_npiv_logo(vport, ndlp);
523 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT,
535 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data;
536 struct lpfc_hba *phba = vport->phba;
538 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
541 if (vport->load_flag & FC_UNLOADING)
544 ndlp = lpfc_findnode_did(vport, Fabric_DID);
546 (void)lpfc_send_npiv_logo(vport, ndlp);
548 lpfc_sli_host_down(vport);
549 lpfc_cleanup_rpis(vport, 0);
551 lpfc_stop_vport_timers(vport);
552 lpfc_unreg_all_rpis(vport);
553 lpfc_unreg_default_rpis(vport);
556 * scsi_host_put() to release the vport.
558 lpfc_mbx_unreg_vpi(vport);
561 vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI;
565 lpfc_vport_set_state(vport, FC_VPORT_DISABLED);
566 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
574 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data;
575 struct lpfc_hba *phba = vport->phba;
577 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
581 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN);
586 vport->load_flag |= FC_LOADING;
587 if (vport->fc_flag & FC_VPORT_NEEDS_INIT_VPI) {
589 lpfc_issue_init_vpi(vport);
593 vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
602 lpfc_set_disctmo(vport);
603 lpfc_initial_fdisc(vport);
605 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP);
606 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
610 lpfc_vport_set_state(vport, FC_VPORT_FAILED);
614 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
632 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data;
633 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
634 struct lpfc_hba *phba = vport->phba;
637 if (vport->port_type == LPFC_PHYSICAL_PORT) {
638 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
644 /* If the vport is a static vport fail the deletion. */
645 if ((vport->vport_flag & STATIC_VPORT) &&
647 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
649 "static vport.\n");
654 vport->load_flag |= FC_UNLOADING;
659 * from happening until after this vport's discovery is finished.
664 vport->port_state > LPFC_VPORT_FAILED &&
665 vport->port_state < LPFC_VPORT_READY) {
669 if (vport->port_state > LPFC_VPORT_FAILED &&
670 vport->port_state < LPFC_VPORT_READY)
683 lpfc_free_sysfs_attr(vport);
684 lpfc_debugfs_terminate(vport);
691 ndlp = lpfc_findnode_did(vport, Fabric_DID);
698 if (vport->cfg_enable_da_id) {
700 rc = lpfc_ns_cmd(vport, SLI_CTNS_DA_ID, 0, 0);
702 lpfc_printf_log(vport->phba, KERN_WARNING,
715 if (!(vport->vpi_state & LPFC_VPI_REGISTERED))
719 ndlp = lpfc_findnode_did(vport, Fabric_DID);
723 rc = lpfc_send_npiv_logo(vport, ndlp);
729 lpfc_discovery_wait(vport);
733 lpfc_cleanup(vport);
736 lpfc_sli_host_down(vport);
737 lpfc_stop_vport_timers(vport);
740 lpfc_unreg_all_rpis(vport);
741 lpfc_unreg_default_rpis(vport);
744 * does the scsi_host_put() to release the vport.
746 if (!(vport->vpi_state & LPFC_VPI_REGISTERED) ||
747 lpfc_mbx_unreg_vpi(vport))
753 lpfc_free_vpi(phba, vport->vpi);
754 vport->work_port_events = 0;
756 list_del_init(&vport->listentry);
758 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
781 "1801 Create vport work array FAILED: "