• Home
  • Raw
  • Download

Lines Matching refs:vport

53 inline void lpfc_vport_set_state(struct lpfc_vport *vport,  in lpfc_vport_set_state()  argument
56 struct fc_vport *fc_vport = vport->fc_vport; in lpfc_vport_set_state()
76 vport->port_state = LPFC_VPORT_FAILED; in lpfc_vport_set_state()
79 vport->port_state = LPFC_VPORT_UNKNOWN; in lpfc_vport_set_state()
118 lpfc_vport_sparm(struct lpfc_hba *phba, struct lpfc_vport *vport) in lpfc_vport_sparm() argument
131 rc = lpfc_read_sparam(phba, pmb, vport->vpi); in lpfc_vport_sparm()
144 pmb->vport = vport; in lpfc_vport_sparm()
148 lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT | LOG_VPORT, in lpfc_vport_sparm()
157 lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT | LOG_VPORT, in lpfc_vport_sparm()
169 memcpy(&vport->fc_sparam, mp->virt, sizeof (struct serv_parm)); in lpfc_vport_sparm()
170 memcpy(&vport->fc_nodename, &vport->fc_sparam.nodeName, in lpfc_vport_sparm()
172 memcpy(&vport->fc_portname, &vport->fc_sparam.portName, in lpfc_vport_sparm()
207 struct lpfc_vport *vport; in lpfc_unique_wwpn() local
211 list_for_each_entry(vport, &phba->port_list, listentry) { in lpfc_unique_wwpn()
212 if (vport == new_vport) in lpfc_unique_wwpn()
215 if (memcmp(&vport->fc_sparam.portName, in lpfc_unique_wwpn()
241 static void lpfc_discovery_wait(struct lpfc_vport *vport) in lpfc_discovery_wait() argument
243 struct lpfc_hba *phba = vport->phba; in lpfc_discovery_wait()
260 if ((vport->num_disc_nodes > 0) || in lpfc_discovery_wait()
261 (vport->fc_flag & wait_flags) || in lpfc_discovery_wait()
262 ((vport->port_state > LPFC_VPORT_FAILED) && in lpfc_discovery_wait()
263 (vport->port_state < LPFC_VPORT_READY))) { in lpfc_discovery_wait()
264 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT, in lpfc_discovery_wait()
269 vport->port_state, vport->fc_flag, in lpfc_discovery_wait()
270 vport->num_disc_nodes, in lpfc_discovery_wait()
275 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT, in lpfc_discovery_wait()
279 vport->port_state, vport->fc_flag, in lpfc_discovery_wait()
287 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_discovery_wait()
290 vport->port_state, vport->fc_flag, in lpfc_discovery_wait()
301 struct lpfc_vport *vport = NULL; in lpfc_vport_create() local
336 vport = lpfc_create_port(phba, instance, &fc_vport->dev); in lpfc_vport_create()
337 if (!vport) { in lpfc_vport_create()
345 vport->vpi = vpi; in lpfc_vport_create()
346 lpfc_debugfs_initialize(vport); in lpfc_vport_create()
348 if ((status = lpfc_vport_sparm(phba, vport))) { in lpfc_vport_create()
350 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
354 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
360 destroy_port(vport); in lpfc_vport_create()
364 u64_to_wwn(fc_vport->node_name, vport->fc_nodename.u.wwn); in lpfc_vport_create()
365 u64_to_wwn(fc_vport->port_name, vport->fc_portname.u.wwn); in lpfc_vport_create()
367 memcpy(&vport->fc_sparam.portName, vport->fc_portname.u.wwn, 8); in lpfc_vport_create()
368 memcpy(&vport->fc_sparam.nodeName, vport->fc_nodename.u.wwn, 8); in lpfc_vport_create()
370 if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") || in lpfc_vport_create()
371 !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) { in lpfc_vport_create()
372 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
376 destroy_port(vport); in lpfc_vport_create()
381 if (!lpfc_unique_wwpn(phba, vport)) { in lpfc_vport_create()
382 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
386 destroy_port(vport); in lpfc_vport_create()
392 lpfc_alloc_sysfs_attr(vport); in lpfc_vport_create()
395 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth; in lpfc_vport_create()
397 *(struct lpfc_vport **)fc_vport->dd_data = vport; in lpfc_vport_create()
398 vport->fc_vport = fc_vport; in lpfc_vport_create()
401 vport->load_flag |= FC_ALLOW_FDMI; in lpfc_vport_create()
405 vport->fdmi_hba_mask = phba->pport->fdmi_hba_mask; in lpfc_vport_create()
406 vport->fdmi_port_mask = phba->pport->fdmi_port_mask; in lpfc_vport_create()
415 rc = lpfc_nvme_create_localport(vport); in lpfc_vport_create()
431 rc = lpfc_sli4_init_vpi(vport); in lpfc_vport_create()
445 vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; in lpfc_vport_create()
446 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN); in lpfc_vport_create()
454 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN); in lpfc_vport_create()
460 lpfc_vport_set_state(vport, FC_VPORT_DISABLED); in lpfc_vport_create()
472 lpfc_set_disctmo(vport); in lpfc_vport_create()
473 lpfc_initial_fdisc(vport); in lpfc_vport_create()
475 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP); in lpfc_vport_create()
476 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS, in lpfc_vport_create()
480 lpfc_vport_set_state(vport, FC_VPORT_FAILED); in lpfc_vport_create()
485 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
487 lpfc_host_attrib_init(lpfc_shost_from_vport(vport)); in lpfc_vport_create()
495 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data; in disable_vport() local
496 struct lpfc_hba *phba = vport->phba; in disable_vport()
499 struct Scsi_Host *shost = lpfc_shost_from_vport(vport); in disable_vport()
501 ndlp = lpfc_findnode_did(vport, Fabric_DID); in disable_vport()
504 vport->unreg_vpi_cmpl = VPORT_INVAL; in disable_vport()
506 if (!lpfc_issue_els_npiv_logo(vport, ndlp)) in disable_vport()
507 while (vport->unreg_vpi_cmpl == VPORT_INVAL && timeout) in disable_vport()
511 lpfc_sli_host_down(vport); in disable_vport()
516 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in disable_vport()
521 lpfc_disc_state_machine(vport, ndlp, NULL, in disable_vport()
524 lpfc_cleanup_rpis(vport, 1); in disable_vport()
526 lpfc_stop_vport_timers(vport); in disable_vport()
527 lpfc_unreg_all_rpis(vport); in disable_vport()
528 lpfc_unreg_default_rpis(vport); in disable_vport()
533 lpfc_mbx_unreg_vpi(vport); in disable_vport()
535 vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; in disable_vport()
538 lpfc_vport_set_state(vport, FC_VPORT_DISABLED); in disable_vport()
539 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in disable_vport()
547 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data; in enable_vport() local
548 struct lpfc_hba *phba = vport->phba; in enable_vport()
550 struct Scsi_Host *shost = lpfc_shost_from_vport(vport); in enable_vport()
554 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN); in enable_vport()
559 vport->load_flag |= FC_LOADING; in enable_vport()
560 if (vport->fc_flag & FC_VPORT_NEEDS_INIT_VPI) { in enable_vport()
562 lpfc_issue_init_vpi(vport); in enable_vport()
566 vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; in enable_vport()
576 lpfc_set_disctmo(vport); in enable_vport()
577 lpfc_initial_fdisc(vport); in enable_vport()
579 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP); in enable_vport()
580 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS, in enable_vport()
584 lpfc_vport_set_state(vport, FC_VPORT_FAILED); in enable_vport()
588 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in enable_vport()
607 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data; in lpfc_vport_delete() local
608 struct Scsi_Host *shost = lpfc_shost_from_vport(vport); in lpfc_vport_delete()
609 struct lpfc_hba *phba = vport->phba; in lpfc_vport_delete()
613 if (vport->port_type == LPFC_PHYSICAL_PORT) { in lpfc_vport_delete()
614 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_delete()
621 if ((vport->vport_flag & STATIC_VPORT) && in lpfc_vport_delete()
623 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_delete()
629 vport->load_flag |= FC_UNLOADING; in lpfc_vport_delete()
638 vport->port_state > LPFC_VPORT_FAILED && in lpfc_vport_delete()
639 vport->port_state < LPFC_VPORT_READY) { in lpfc_vport_delete()
643 if (vport->port_state > LPFC_VPORT_FAILED && in lpfc_vport_delete()
644 vport->port_state < LPFC_VPORT_READY) in lpfc_vport_delete()
668 lpfc_free_sysfs_attr(vport); in lpfc_vport_delete()
670 lpfc_debugfs_terminate(vport); in lpfc_vport_delete()
678 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_vport_delete()
699 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_vport_delete()
703 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_vport_delete()
709 lpfc_dequeue_node(vport, ndlp); in lpfc_vport_delete()
726 if (vport->cfg_enable_da_id) { in lpfc_vport_delete()
728 if (!lpfc_ns_cmd(vport, SLI_CTNS_DA_ID, 0, 0)) in lpfc_vport_delete()
729 while (vport->ct_flags && timeout) in lpfc_vport_delete()
732 lpfc_printf_log(vport->phba, KERN_WARNING, in lpfc_vport_delete()
738 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_vport_delete()
741 ndlp = lpfc_nlp_init(vport, Fabric_DID); in lpfc_vport_delete()
748 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_vport_delete()
755 lpfc_dequeue_node(vport, ndlp); in lpfc_vport_delete()
773 if (!(vport->vpi_state & LPFC_VPI_REGISTERED)) { in lpfc_vport_delete()
778 vport->unreg_vpi_cmpl = VPORT_INVAL; in lpfc_vport_delete()
780 if (!lpfc_issue_els_npiv_logo(vport, ndlp)) in lpfc_vport_delete()
781 while (vport->unreg_vpi_cmpl == VPORT_INVAL && timeout) in lpfc_vport_delete()
786 lpfc_discovery_wait(vport); in lpfc_vport_delete()
795 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_vport_delete()
799 lpfc_cleanup(vport); in lpfc_vport_delete()
800 lpfc_sli_host_down(vport); in lpfc_vport_delete()
802 lpfc_stop_vport_timers(vport); in lpfc_vport_delete()
805 lpfc_unreg_all_rpis(vport); in lpfc_vport_delete()
806 lpfc_unreg_default_rpis(vport); in lpfc_vport_delete()
811 if (!(vport->vpi_state & LPFC_VPI_REGISTERED) || in lpfc_vport_delete()
812 lpfc_mbx_unreg_vpi(vport)) in lpfc_vport_delete()
817 lpfc_free_vpi(phba, vport->vpi); in lpfc_vport_delete()
818 vport->work_port_events = 0; in lpfc_vport_delete()
820 list_del_init(&vport->listentry); in lpfc_vport_delete()
822 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, in lpfc_vport_delete()
874 lpfc_vport_reset_stat_data(struct lpfc_vport *vport) in lpfc_vport_reset_stat_data() argument
878 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_vport_reset_stat_data()
896 lpfc_alloc_bucket(struct lpfc_vport *vport) in lpfc_alloc_bucket() argument
900 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_alloc_bucket()
913 lpfc_printf_vlog(vport, KERN_ERR, LOG_NODE, in lpfc_alloc_bucket()
929 lpfc_free_bucket(struct lpfc_vport *vport) in lpfc_free_bucket() argument
933 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_free_bucket()