Lines Matching defs: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;
253 if ((vport->num_disc_nodes > 0) ||
254 test_bit(FC_RSCN_MODE, &vport->fc_flag) ||
255 test_bit(FC_RSCN_DISCOVERY, &vport->fc_flag) ||
256 test_bit(FC_NLP_MORE, &vport->fc_flag) ||
257 test_bit(FC_RSCN_DEFERRED, &vport->fc_flag) ||
258 test_bit(FC_NDISC_ACTIVE, &vport->fc_flag) ||
259 test_bit(FC_DISC_TMO, &vport->fc_flag) ||
260 ((vport->port_state > LPFC_VPORT_FAILED) &&
261 (vport->port_state < LPFC_VPORT_READY))) {
262 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT,
267 vport->port_state, vport->fc_flag,
268 vport->num_disc_nodes,
273 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT,
277 vport->port_state, vport->fc_flag,
285 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
288 vport->port_state, vport->fc_flag,
299 struct lpfc_vport *vport = NULL;
343 vport = lpfc_create_port(phba, instance, &fc_vport->dev);
344 if (!vport) {
352 vport->vpi = vpi;
353 lpfc_debugfs_initialize(vport);
355 if ((status = lpfc_vport_sparm(phba, vport))) {
357 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
361 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
367 destroy_port(vport);
371 u64_to_wwn(fc_vport->node_name, vport->fc_nodename.u.wwn);
372 u64_to_wwn(fc_vport->port_name, vport->fc_portname.u.wwn);
374 memcpy(&vport->fc_sparam.portName, vport->fc_portname.u.wwn, 8);
375 memcpy(&vport->fc_sparam.nodeName, vport->fc_nodename.u.wwn, 8);
377 if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") ||
378 !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) {
379 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
383 destroy_port(vport);
388 if (!lpfc_unique_wwpn(phba, vport)) {
389 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
393 destroy_port(vport);
398 /* Create binary sysfs attribute for vport */
399 lpfc_alloc_sysfs_attr(vport);
402 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth;
405 vport->cfg_enable_fc4_type = LPFC_ENABLE_FCP;
407 *(struct lpfc_vport **)fc_vport->dd_data = vport;
408 vport->fc_vport = fc_vport;
411 set_bit(FC_ALLOW_FDMI, &vport->load_flag);
415 vport->fdmi_hba_mask = phba->pport->fdmi_hba_mask;
416 vport->fdmi_port_mask = phba->pport->fdmi_port_mask;
425 rc = lpfc_sli4_init_vpi(vport);
439 set_bit(FC_VPORT_NEEDS_INIT_VPI, &vport->fc_flag);
440 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN);
448 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN);
454 lpfc_vport_set_state(vport, FC_VPORT_DISABLED);
466 lpfc_set_disctmo(vport);
467 lpfc_initial_fdisc(vport);
469 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP);
470 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
474 lpfc_vport_set_state(vport, FC_VPORT_FAILED);
479 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
481 lpfc_host_attrib_init(lpfc_shost_from_vport(vport));
487 lpfc_send_npiv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
490 struct lpfc_hba *phba = vport->phba;
503 rc = lpfc_issue_els_npiv_logo(vport, ndlp);
524 lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT,
536 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data;
537 struct lpfc_hba *phba = vport->phba;
541 if (test_bit(FC_UNLOADING, &vport->load_flag))
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);
560 set_bit(FC_VPORT_NEEDS_INIT_VPI, &vport->fc_flag);
562 lpfc_vport_set_state(vport, FC_VPORT_DISABLED);
563 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
571 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data;
572 struct lpfc_hba *phba = vport->phba;
577 lpfc_vport_set_state(vport, FC_VPORT_LINKDOWN);
581 set_bit(FC_LOADING, &vport->load_flag);
582 if (test_bit(FC_VPORT_NEEDS_INIT_VPI, &vport->fc_flag)) {
583 lpfc_issue_init_vpi(vport);
587 set_bit(FC_VPORT_NEEDS_REG_VPI, &vport->fc_flag);
595 lpfc_set_disctmo(vport);
596 lpfc_initial_fdisc(vport);
598 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP);
599 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
603 lpfc_vport_set_state(vport, FC_VPORT_FAILED);
607 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
625 struct lpfc_vport *vport = *(struct lpfc_vport **)fc_vport->dd_data;
626 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
627 struct lpfc_hba *phba = vport->phba;
630 if (vport->port_type == LPFC_PHYSICAL_PORT) {
631 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
637 /* If the vport is a static vport fail the deletion. */
638 if ((vport->vport_flag & STATIC_VPORT) &&
640 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
642 "static vport.\n");
646 set_bit(FC_UNLOADING, &vport->load_flag);
650 * from happening until after this vport's discovery is finished.
655 vport->port_state > LPFC_VPORT_FAILED &&
656 vport->port_state < LPFC_VPORT_READY) {
660 if (vport->port_state > LPFC_VPORT_FAILED &&
661 vport->port_state < LPFC_VPORT_READY)
674 lpfc_free_sysfs_attr(vport);
675 lpfc_debugfs_terminate(vport);
678 ndlp = lpfc_findnode_did(vport, Fabric_DID);
685 if (vport->cfg_enable_da_id) {
687 rc = lpfc_ns_cmd(vport, SLI_CTNS_DA_ID, 0, 0);
689 lpfc_printf_log(vport->phba, KERN_WARNING,
702 if (!(vport->vpi_state & LPFC_VPI_REGISTERED))
706 ndlp = lpfc_findnode_did(vport, Fabric_DID);
710 rc = lpfc_send_npiv_logo(vport, ndlp);
716 lpfc_discovery_wait(vport);
724 lpfc_cleanup(vport);
727 lpfc_sli_host_down(vport);
728 lpfc_stop_vport_timers(vport);
731 lpfc_unreg_all_rpis(vport);
732 lpfc_unreg_default_rpis(vport);
735 * does the scsi_host_put() to release the vport.
737 if (!(vport->vpi_state & LPFC_VPI_REGISTERED) ||
738 lpfc_mbx_unreg_vpi(vport))
744 lpfc_free_vpi(phba, vport->vpi);
745 vport->work_port_events = 0;
747 list_del_init(&vport->listentry);
749 lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
772 "1801 Create vport work array FAILED: "