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
253 wait_time_max = msecs_to_jiffies(((phba->fc_ratov * 3) + 3) * 1000); in lpfc_discovery_wait()
297 struct lpfc_hba *phba = pport->phba; in lpfc_vport_create() local
304 if ((phba->sli_rev < 3) || !(phba->cfg_enable_npiv)) { in lpfc_vport_create()
305 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
308 phba->sli_rev); in lpfc_vport_create()
314 if (phba->nvmet_support) { in lpfc_vport_create()
315 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
322 vpi = lpfc_alloc_vpi(phba); in lpfc_vport_create()
324 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
327 phba->max_vpi); in lpfc_vport_create()
334 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
337 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
342 vport = lpfc_create_port(phba, instance, &fc_vport->dev); in lpfc_vport_create()
344 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
346 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
354 if ((status = lpfc_vport_sparm(phba, vport))) { in lpfc_vport_create()
365 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
376 if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") || in lpfc_vport_create()
377 !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) { in lpfc_vport_create()
381 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
387 if (!lpfc_unique_wwpn(phba, vport)) { in lpfc_vport_create()
391 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
401 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth; in lpfc_vport_create()
411 if (phba->cfg_enable_SmartSAN || in lpfc_vport_create()
412 (phba->cfg_fdmi_on == LPFC_FDMI_SUPPORT)) { in lpfc_vport_create()
414 vport->fdmi_hba_mask = phba->pport->fdmi_hba_mask; in lpfc_vport_create()
415 vport->fdmi_port_mask = phba->pport->fdmi_port_mask; in lpfc_vport_create()
422 if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_vport_create()
426 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_vport_create()
430 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
433 } else if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_vport_create()
444 if ((phba->link_state < LPFC_LINK_UP) || in lpfc_vport_create()
446 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { in lpfc_vport_create()
461 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_vport_create()
464 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { in lpfc_vport_create()
489 struct lpfc_hba *phba = vport->phba; in lpfc_send_npiv_logo() local
506 msecs_to_jiffies(phba->fc_ratov * 2000)); in lpfc_send_npiv_logo()
536 struct lpfc_hba *phba = vport->phba; in disable_vport() local
545 if (ndlp && phba->link_state >= LPFC_LINK_UP) in disable_vport()
559 if (phba->sli_rev == LPFC_SLI_REV4) { in disable_vport()
575 struct lpfc_hba *phba = vport->phba; in enable_vport() local
579 if ((phba->link_state < LPFC_LINK_UP) || in enable_vport()
580 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { in enable_vport()
599 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in enable_vport()
601 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { in enable_vport()
634 struct lpfc_hba *phba = vport->phba; in lpfc_vport_delete() local
646 !(phba->pport->load_flag & FC_UNLOADING)) { in lpfc_vport_delete()
653 spin_lock_irq(&phba->hbalock); in lpfc_vport_delete()
655 spin_unlock_irq(&phba->hbalock); in lpfc_vport_delete()
661 if (!(phba->pport->load_flag & FC_UNLOADING)) { in lpfc_vport_delete()
663 while (check_count < ((phba->fc_ratov * 3) + 3) && in lpfc_vport_delete()
696 phba->link_state >= LPFC_LINK_UP && in lpfc_vport_delete()
697 phba->fc_topology != LPFC_TOPOLOGY_LOOP) { in lpfc_vport_delete()
702 lpfc_printf_log(vport->phba, KERN_WARNING, in lpfc_vport_delete()
728 if (!(phba->pport->load_flag & FC_UNLOADING)) in lpfc_vport_delete()
739 if (!(phba->pport->load_flag & FC_UNLOADING)) { in lpfc_vport_delete()
753 lpfc_free_vpi(phba, vport->vpi); in lpfc_vport_delete()
755 spin_lock_irq(&phba->port_list_lock); in lpfc_vport_delete()
757 spin_unlock_irq(&phba->port_list_lock); in lpfc_vport_delete()
765 lpfc_create_vport_work_array(struct lpfc_hba *phba) in lpfc_create_vport_work_array() argument
770 vports = kcalloc(phba->max_vports + 1, sizeof(struct lpfc_vport *), in lpfc_create_vport_work_array()
774 spin_lock_irq(&phba->port_list_lock); in lpfc_create_vport_work_array()
775 list_for_each_entry(port_iterator, &phba->port_list, listentry) { in lpfc_create_vport_work_array()
787 spin_unlock_irq(&phba->port_list_lock); in lpfc_create_vport_work_array()
792 lpfc_destroy_vport_work_array(struct lpfc_hba *phba, struct lpfc_vport **vports) in lpfc_destroy_vport_work_array() argument
797 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) in lpfc_destroy_vport_work_array()