Lines Matching refs:phba
88 lpfc_alloc_vpi(struct lpfc_hba *phba) in lpfc_alloc_vpi() argument
92 spin_lock_irq(&phba->hbalock); in lpfc_alloc_vpi()
94 vpi = find_next_zero_bit(phba->vpi_bmask, (phba->max_vpi + 1), 1); in lpfc_alloc_vpi()
95 if (vpi > phba->max_vpi) in lpfc_alloc_vpi()
98 set_bit(vpi, phba->vpi_bmask); in lpfc_alloc_vpi()
99 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_alloc_vpi()
100 phba->sli4_hba.max_cfg_param.vpi_used++; in lpfc_alloc_vpi()
101 spin_unlock_irq(&phba->hbalock); in lpfc_alloc_vpi()
106 lpfc_free_vpi(struct lpfc_hba *phba, int vpi) in lpfc_free_vpi() argument
110 spin_lock_irq(&phba->hbalock); in lpfc_free_vpi()
111 clear_bit(vpi, phba->vpi_bmask); in lpfc_free_vpi()
112 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_free_vpi()
113 phba->sli4_hba.max_cfg_param.vpi_used--; in lpfc_free_vpi()
114 spin_unlock_irq(&phba->hbalock); in lpfc_free_vpi()
118 lpfc_vport_sparm(struct lpfc_hba *phba, struct lpfc_vport *vport) in lpfc_vport_sparm() argument
125 pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_vport_sparm()
131 rc = lpfc_read_sparam(phba, pmb, vport->vpi); in lpfc_vport_sparm()
133 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_vport_sparm()
147 rc = lpfc_sli_issue_mbox_wait(phba, pmb, phba->fc_ratov * 2); in lpfc_vport_sparm()
154 lpfc_mbox_rsrc_cleanup(phba, pmb, in lpfc_vport_sparm()
163 lpfc_mbox_rsrc_cleanup(phba, pmb, in lpfc_vport_sparm()
175 lpfc_mbox_rsrc_cleanup(phba, pmb, MBOX_THD_UNLOCKED); in lpfc_vport_sparm()
180 lpfc_valid_wwn_format(struct lpfc_hba *phba, struct lpfc_name *wwn, in lpfc_valid_wwn_format() argument
190 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, in lpfc_valid_wwn_format()
202 lpfc_unique_wwpn(struct lpfc_hba *phba, struct lpfc_vport *new_vport) in lpfc_unique_wwpn() argument
207 spin_lock_irqsave(&phba->port_list_lock, flags); in lpfc_unique_wwpn()
208 list_for_each_entry(vport, &phba->port_list, listentry) { in lpfc_unique_wwpn()
215 spin_unlock_irqrestore(&phba->port_list_lock, flags); in lpfc_unique_wwpn()
219 spin_unlock_irqrestore(&phba->port_list_lock, flags); in lpfc_unique_wwpn()
240 struct lpfc_hba *phba = vport->phba; in lpfc_discovery_wait() local
249 wait_time_max = msecs_to_jiffies(((phba->fc_ratov * 3) + 3) * 1000); in lpfc_discovery_wait()
298 struct lpfc_hba *phba = pport->phba; in lpfc_vport_create() local
305 if ((phba->sli_rev < 3) || !(phba->cfg_enable_npiv)) { in lpfc_vport_create()
306 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
309 phba->sli_rev); in lpfc_vport_create()
315 if (phba->nvmet_support) { in lpfc_vport_create()
316 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
323 vpi = lpfc_alloc_vpi(phba); in lpfc_vport_create()
325 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
328 phba->max_vpi); in lpfc_vport_create()
335 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
338 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
343 vport = lpfc_create_port(phba, instance, &fc_vport->dev); in lpfc_vport_create()
345 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
347 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
355 if ((status = lpfc_vport_sparm(phba, vport))) { in lpfc_vport_create()
366 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
377 if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") || in lpfc_vport_create()
378 !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) { in lpfc_vport_create()
382 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
388 if (!lpfc_unique_wwpn(phba, vport)) { in lpfc_vport_create()
392 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
402 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth; in lpfc_vport_create()
412 if (phba->cfg_enable_SmartSAN || in lpfc_vport_create()
413 (phba->cfg_fdmi_on == LPFC_FDMI_SUPPORT)) { in lpfc_vport_create()
415 vport->fdmi_hba_mask = phba->pport->fdmi_hba_mask; in lpfc_vport_create()
416 vport->fdmi_port_mask = phba->pport->fdmi_port_mask; in lpfc_vport_create()
423 if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_vport_create()
427 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
431 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
434 } else if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_vport_create()
445 if ((phba->link_state < LPFC_LINK_UP) || in lpfc_vport_create()
447 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { in lpfc_vport_create()
462 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_vport_create()
465 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { in lpfc_vport_create()
490 struct lpfc_hba *phba = vport->phba; in lpfc_send_npiv_logo() local
508 msecs_to_jiffies(phba->fc_ratov * 2000)); in lpfc_send_npiv_logo()
536 struct lpfc_hba *phba = vport->phba; in disable_vport() local
544 if (ndlp && phba->link_state >= LPFC_LINK_UP) in disable_vport()
558 if (phba->sli_rev == LPFC_SLI_REV4) in disable_vport()
571 struct lpfc_hba *phba = vport->phba; in enable_vport() local
574 if ((phba->link_state < LPFC_LINK_UP) || in enable_vport()
575 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { in enable_vport()
591 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in enable_vport()
593 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { in enable_vport()
626 struct lpfc_hba *phba = vport->phba; in lpfc_vport_delete() local
639 !test_bit(FC_UNLOADING, &phba->pport->load_flag)) { in lpfc_vport_delete()
652 if (!test_bit(FC_UNLOADING, &phba->pport->load_flag)) { in lpfc_vport_delete()
654 while (check_count < ((phba->fc_ratov * 3) + 3) && in lpfc_vport_delete()
684 phba->link_state >= LPFC_LINK_UP && in lpfc_vport_delete()
685 phba->fc_topology != LPFC_TOPOLOGY_LOOP) { in lpfc_vport_delete()
706 msecs_to_jiffies(phba->fc_ratov * 2000)); in lpfc_vport_delete()
744 if (!test_bit(FC_UNLOADING, &phba->pport->load_flag)) in lpfc_vport_delete()
759 if (!test_bit(FC_UNLOADING, &phba->pport->load_flag)) { in lpfc_vport_delete()
773 lpfc_free_vpi(phba, vport->vpi); in lpfc_vport_delete()
775 spin_lock_irq(&phba->port_list_lock); in lpfc_vport_delete()
777 spin_unlock_irq(&phba->port_list_lock); in lpfc_vport_delete()
785 lpfc_create_vport_work_array(struct lpfc_hba *phba) in lpfc_create_vport_work_array() argument
790 vports = kcalloc(phba->max_vports + 1, sizeof(struct lpfc_vport *), in lpfc_create_vport_work_array()
794 spin_lock_irq(&phba->port_list_lock); in lpfc_create_vport_work_array()
795 list_for_each_entry(port_iterator, &phba->port_list, listentry) { in lpfc_create_vport_work_array()
807 spin_unlock_irq(&phba->port_list_lock); in lpfc_create_vport_work_array()
812 lpfc_destroy_vport_work_array(struct lpfc_hba *phba, struct lpfc_vport **vports) in lpfc_destroy_vport_work_array() argument
817 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) in lpfc_destroy_vport_work_array()