Lines Matching refs:vport
49 inline void lpfc_vport_set_state(struct lpfc_vport *vport, in lpfc_vport_set_state() argument
52 struct fc_vport *fc_vport = vport->fc_vport; in lpfc_vport_set_state()
72 vport->port_state = LPFC_VPORT_FAILED; in lpfc_vport_set_state()
75 vport->port_state = LPFC_VPORT_UNKNOWN; in lpfc_vport_set_state()
114 lpfc_vport_sparm(struct lpfc_hba *phba, struct lpfc_vport *vport) in lpfc_vport_sparm() argument
127 rc = lpfc_read_sparam(phba, pmb, vport->vpi); in lpfc_vport_sparm()
140 pmb->vport = vport; in lpfc_vport_sparm()
144 lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT | LOG_VPORT, in lpfc_vport_sparm()
153 lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT | LOG_VPORT, in lpfc_vport_sparm()
165 memcpy(&vport->fc_sparam, mp->virt, sizeof (struct serv_parm)); in lpfc_vport_sparm()
166 memcpy(&vport->fc_nodename, &vport->fc_sparam.nodeName, in lpfc_vport_sparm()
168 memcpy(&vport->fc_portname, &vport->fc_sparam.portName, in lpfc_vport_sparm()
203 struct lpfc_vport *vport; in lpfc_unique_wwpn() local
207 list_for_each_entry(vport, &phba->port_list, listentry) { in lpfc_unique_wwpn()
208 if (vport == new_vport) in lpfc_unique_wwpn()
211 if (memcmp(&vport->fc_sparam.portName, in lpfc_unique_wwpn()
237 static void lpfc_discovery_wait(struct lpfc_vport *vport) in lpfc_discovery_wait() argument
239 struct lpfc_hba *phba = vport->phba; in lpfc_discovery_wait()
256 if ((vport->num_disc_nodes > 0) || in lpfc_discovery_wait()
257 (vport->fc_flag & wait_flags) || in lpfc_discovery_wait()
258 ((vport->port_state > LPFC_VPORT_FAILED) && in lpfc_discovery_wait()
259 (vport->port_state < LPFC_VPORT_READY))) { in lpfc_discovery_wait()
260 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT, in lpfc_discovery_wait()
265 vport->port_state, vport->fc_flag, in lpfc_discovery_wait()
266 vport->num_disc_nodes, in lpfc_discovery_wait()
271 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT, in lpfc_discovery_wait()
275 vport->port_state, vport->fc_flag, in lpfc_discovery_wait()
283 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_discovery_wait()
286 vport->port_state, vport->fc_flag, in lpfc_discovery_wait()
297 struct lpfc_vport *vport = NULL; in lpfc_vport_create() local
332 vport = lpfc_create_port(phba, instance, &fc_vport->dev); in lpfc_vport_create()
333 if (!vport) { in lpfc_vport_create()
341 vport->vpi = vpi; in lpfc_vport_create()
342 lpfc_debugfs_initialize(vport); in lpfc_vport_create()
344 if ((status = lpfc_vport_sparm(phba, vport))) { in lpfc_vport_create()
346 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
350 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
356 destroy_port(vport); in lpfc_vport_create()
360 u64_to_wwn(fc_vport->node_name, vport->fc_nodename.u.wwn); in lpfc_vport_create()
361 u64_to_wwn(fc_vport->port_name, vport->fc_portname.u.wwn); in lpfc_vport_create()
363 memcpy(&vport->fc_sparam.portName, vport->fc_portname.u.wwn, 8); in lpfc_vport_create()
364 memcpy(&vport->fc_sparam.nodeName, vport->fc_nodename.u.wwn, 8); in lpfc_vport_create()
366 if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") || in lpfc_vport_create()
367 !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) { in lpfc_vport_create()
368 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
372 destroy_port(vport); in lpfc_vport_create()
377 if (!lpfc_unique_wwpn(phba, vport)) { in lpfc_vport_create()
378 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
382 destroy_port(vport); in lpfc_vport_create()
388 lpfc_alloc_sysfs_attr(vport); in lpfc_vport_create()
391 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth; in lpfc_vport_create()
393 *(struct lpfc_vport **)fc_vport->dd_data = vport; in lpfc_vport_create()
394 vport->fc_vport = fc_vport; in lpfc_vport_create()
402 rc = lpfc_sli4_init_vpi(vport); in lpfc_vport_create()
416 vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; in lpfc_vport_create()
417 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN); in lpfc_vport_create()
425 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN); in lpfc_vport_create()
431 lpfc_vport_set_state(vport, FC_VPORT_DISABLED); in lpfc_vport_create()
443 lpfc_set_disctmo(vport); in lpfc_vport_create()
444 lpfc_initial_fdisc(vport); in lpfc_vport_create()
446 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP); in lpfc_vport_create()
447 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS, in lpfc_vport_create()
451 lpfc_vport_set_state(vport, FC_VPORT_FAILED); in lpfc_vport_create()
456 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
458 lpfc_host_attrib_init(lpfc_shost_from_vport(vport)); in lpfc_vport_create()
466 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data; in disable_vport() local
467 struct lpfc_hba *phba = vport->phba; in disable_vport()
470 struct Scsi_Host *shost = lpfc_shost_from_vport(vport); in disable_vport()
472 ndlp = lpfc_findnode_did(vport, Fabric_DID); in disable_vport()
475 vport->unreg_vpi_cmpl = VPORT_INVAL; in disable_vport()
477 if (!lpfc_issue_els_npiv_logo(vport, ndlp)) in disable_vport()
478 while (vport->unreg_vpi_cmpl == VPORT_INVAL && timeout) in disable_vport()
482 lpfc_sli_host_down(vport); in disable_vport()
487 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in disable_vport()
492 lpfc_disc_state_machine(vport, ndlp, NULL, in disable_vport()
495 lpfc_cleanup_rpis(vport, 1); in disable_vport()
497 lpfc_stop_vport_timers(vport); in disable_vport()
498 lpfc_unreg_all_rpis(vport); in disable_vport()
499 lpfc_unreg_default_rpis(vport); in disable_vport()
504 lpfc_mbx_unreg_vpi(vport); in disable_vport()
506 vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; in disable_vport()
509 lpfc_vport_set_state(vport, FC_VPORT_DISABLED); in disable_vport()
510 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in disable_vport()
518 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data; in enable_vport() local
519 struct lpfc_hba *phba = vport->phba; in enable_vport()
521 struct Scsi_Host *shost = lpfc_shost_from_vport(vport); in enable_vport()
525 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN); in enable_vport()
530 vport->load_flag |= FC_LOADING; in enable_vport()
531 vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; in enable_vport()
541 lpfc_set_disctmo(vport); in enable_vport()
542 lpfc_initial_fdisc(vport); in enable_vport()
544 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP); in enable_vport()
545 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS, in enable_vport()
549 lpfc_vport_set_state(vport, FC_VPORT_FAILED); in enable_vport()
551 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in enable_vport()
571 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data; in lpfc_vport_delete() local
572 struct lpfc_hba *phba = vport->phba; in lpfc_vport_delete()
576 if (vport->port_type == LPFC_PHYSICAL_PORT) { in lpfc_vport_delete()
577 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_delete()
584 if ((vport->vport_flag & STATIC_VPORT) && in lpfc_vport_delete()
586 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_delete()
592 vport->load_flag |= FC_UNLOADING; in lpfc_vport_delete()
601 vport->port_state > LPFC_VPORT_FAILED && in lpfc_vport_delete()
602 vport->port_state < LPFC_VPORT_READY) { in lpfc_vport_delete()
606 if (vport->port_state > LPFC_VPORT_FAILED && in lpfc_vport_delete()
607 vport->port_state < LPFC_VPORT_READY) in lpfc_vport_delete()
631 lpfc_free_sysfs_attr(vport); in lpfc_vport_delete()
633 lpfc_debugfs_terminate(vport); in lpfc_vport_delete()
641 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_vport_delete()
648 fc_remove_host(lpfc_shost_from_vport(vport)); in lpfc_vport_delete()
649 scsi_remove_host(lpfc_shost_from_vport(vport)); in lpfc_vport_delete()
662 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_vport_delete()
666 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_vport_delete()
672 lpfc_dequeue_node(vport, ndlp); in lpfc_vport_delete()
689 if (vport->cfg_enable_da_id) { in lpfc_vport_delete()
691 if (!lpfc_ns_cmd(vport, SLI_CTNS_DA_ID, 0, 0)) in lpfc_vport_delete()
692 while (vport->ct_flags && timeout) in lpfc_vport_delete()
695 lpfc_printf_log(vport->phba, KERN_WARNING, in lpfc_vport_delete()
701 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_vport_delete()
707 lpfc_nlp_init(vport, ndlp, Fabric_DID); in lpfc_vport_delete()
712 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_vport_delete()
719 lpfc_dequeue_node(vport, ndlp); in lpfc_vport_delete()
737 if (!(vport->vpi_state & LPFC_VPI_REGISTERED)) { in lpfc_vport_delete()
742 vport->unreg_vpi_cmpl = VPORT_INVAL; in lpfc_vport_delete()
744 if (!lpfc_issue_els_npiv_logo(vport, ndlp)) in lpfc_vport_delete()
745 while (vport->unreg_vpi_cmpl == VPORT_INVAL && timeout) in lpfc_vport_delete()
750 lpfc_discovery_wait(vport); in lpfc_vport_delete()
759 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_vport_delete()
763 lpfc_cleanup(vport); in lpfc_vport_delete()
764 lpfc_sli_host_down(vport); in lpfc_vport_delete()
766 lpfc_stop_vport_timers(vport); in lpfc_vport_delete()
769 lpfc_unreg_all_rpis(vport); in lpfc_vport_delete()
770 lpfc_unreg_default_rpis(vport); in lpfc_vport_delete()
775 if (lpfc_mbx_unreg_vpi(vport)) in lpfc_vport_delete()
780 lpfc_free_vpi(phba, vport->vpi); in lpfc_vport_delete()
781 vport->work_port_events = 0; in lpfc_vport_delete()
783 list_del_init(&vport->listentry); in lpfc_vport_delete()
785 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_delete()
837 lpfc_vport_reset_stat_data(struct lpfc_vport *vport) in lpfc_vport_reset_stat_data() argument
841 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_vport_reset_stat_data()
859 lpfc_alloc_bucket(struct lpfc_vport *vport) in lpfc_alloc_bucket() argument
863 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_alloc_bucket()
876 lpfc_printf_vlog(vport, KERN_ERR, LOG_NODE, in lpfc_alloc_bucket()
892 lpfc_free_bucket(struct lpfc_vport *vport) in lpfc_free_bucket() argument
896 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_free_bucket()