Lines Matching refs:phba
84 lpfc_alloc_vpi(struct lpfc_hba *phba) in lpfc_alloc_vpi() argument
88 spin_lock_irq(&phba->hbalock); in lpfc_alloc_vpi()
90 vpi = find_next_zero_bit(phba->vpi_bmask, (phba->max_vpi + 1), 1); in lpfc_alloc_vpi()
91 if (vpi > phba->max_vpi) in lpfc_alloc_vpi()
94 set_bit(vpi, phba->vpi_bmask); in lpfc_alloc_vpi()
95 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_alloc_vpi()
96 phba->sli4_hba.max_cfg_param.vpi_used++; in lpfc_alloc_vpi()
97 spin_unlock_irq(&phba->hbalock); in lpfc_alloc_vpi()
102 lpfc_free_vpi(struct lpfc_hba *phba, int vpi) in lpfc_free_vpi() argument
106 spin_lock_irq(&phba->hbalock); in lpfc_free_vpi()
107 clear_bit(vpi, phba->vpi_bmask); in lpfc_free_vpi()
108 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_free_vpi()
109 phba->sli4_hba.max_cfg_param.vpi_used--; in lpfc_free_vpi()
110 spin_unlock_irq(&phba->hbalock); in lpfc_free_vpi()
114 lpfc_vport_sparm(struct lpfc_hba *phba, struct lpfc_vport *vport) in lpfc_vport_sparm() argument
121 pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_vport_sparm()
127 rc = lpfc_read_sparam(phba, pmb, vport->vpi); in lpfc_vport_sparm()
129 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_vport_sparm()
141 rc = lpfc_sli_issue_mbox_wait(phba, pmb, phba->fc_ratov * 2); in lpfc_vport_sparm()
147 lpfc_mbuf_free(phba, mp->virt, mp->phys); in lpfc_vport_sparm()
150 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_vport_sparm()
157 lpfc_mbuf_free(phba, mp->virt, mp->phys); in lpfc_vport_sparm()
160 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_vport_sparm()
171 lpfc_mbuf_free(phba, mp->virt, mp->phys); in lpfc_vport_sparm()
173 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_vport_sparm()
179 lpfc_valid_wwn_format(struct lpfc_hba *phba, struct lpfc_name *wwn, in lpfc_valid_wwn_format() argument
189 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, in lpfc_valid_wwn_format()
201 lpfc_unique_wwpn(struct lpfc_hba *phba, struct lpfc_vport *new_vport) in lpfc_unique_wwpn() argument
206 spin_lock_irqsave(&phba->hbalock, flags); in lpfc_unique_wwpn()
207 list_for_each_entry(vport, &phba->port_list, listentry) { in lpfc_unique_wwpn()
214 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_unique_wwpn()
218 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_unique_wwpn()
239 struct lpfc_hba *phba = vport->phba; in lpfc_discovery_wait() local
252 wait_time_max = msecs_to_jiffies(((phba->fc_ratov * 3) + 3) * 1000); in lpfc_discovery_wait()
296 struct lpfc_hba *phba = pport->phba; in lpfc_vport_create() local
303 if ((phba->sli_rev < 3) || !(phba->cfg_enable_npiv)) { in lpfc_vport_create()
304 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
307 phba->sli_rev); in lpfc_vport_create()
312 vpi = lpfc_alloc_vpi(phba); in lpfc_vport_create()
314 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
317 phba->max_vpi); in lpfc_vport_create()
324 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
327 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
332 vport = lpfc_create_port(phba, instance, &fc_vport->dev); in lpfc_vport_create()
334 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
336 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
344 if ((status = lpfc_vport_sparm(phba, vport))) { in lpfc_vport_create()
355 lpfc_free_vpi(phba, vpi); 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()
371 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
377 if (!lpfc_unique_wwpn(phba, vport)) { in lpfc_vport_create()
381 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
391 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth; in lpfc_vport_create()
400 if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_vport_create()
404 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, in lpfc_vport_create()
408 lpfc_free_vpi(phba, vpi); in lpfc_vport_create()
411 } else if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_vport_create()
422 if ((phba->link_state < LPFC_LINK_UP) || in lpfc_vport_create()
424 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { in lpfc_vport_create()
439 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_vport_create()
442 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { in lpfc_vport_create()
467 struct lpfc_hba *phba = vport->phba; in disable_vport() local
474 && phba->link_state >= LPFC_LINK_UP) { in disable_vport()
476 timeout = msecs_to_jiffies(phba->fc_ratov * 2000); in disable_vport()
519 struct lpfc_hba *phba = vport->phba; in enable_vport() local
523 if ((phba->link_state < LPFC_LINK_UP) || in enable_vport()
524 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { in enable_vport()
537 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in enable_vport()
540 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { in enable_vport()
572 struct lpfc_hba *phba = vport->phba; in lpfc_vport_delete() local
585 !(phba->pport->load_flag & FC_UNLOADING)) { in lpfc_vport_delete()
591 spin_lock_irq(&phba->hbalock); in lpfc_vport_delete()
593 spin_unlock_irq(&phba->hbalock); in lpfc_vport_delete()
598 if (!(phba->pport->load_flag & FC_UNLOADING)) { in lpfc_vport_delete()
600 while (check_count < ((phba->fc_ratov * 3) + 3) && in lpfc_vport_delete()
651 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_vport_delete()
657 if (phba->pport->load_flag & FC_UNLOADING) { in lpfc_vport_delete()
660 phba->link_state >= LPFC_LINK_UP) { in lpfc_vport_delete()
675 spin_lock_irq(&phba->ndlp_lock); in lpfc_vport_delete()
677 spin_unlock_irq(&phba->ndlp_lock); in lpfc_vport_delete()
687 phba->link_state >= LPFC_LINK_UP && in lpfc_vport_delete()
688 phba->fc_topology != LPFC_TOPOLOGY_LOOP) { in lpfc_vport_delete()
690 timeout = msecs_to_jiffies(phba->fc_ratov * 2000); in lpfc_vport_delete()
695 lpfc_printf_log(vport->phba, KERN_WARNING, in lpfc_vport_delete()
704 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_vport_delete()
720 spin_lock_irq(&phba->ndlp_lock); in lpfc_vport_delete()
726 spin_unlock_irq(&phba->ndlp_lock); in lpfc_vport_delete()
729 spin_unlock_irq(&phba->ndlp_lock); in lpfc_vport_delete()
743 timeout = msecs_to_jiffies(phba->fc_ratov * 2000); in lpfc_vport_delete()
749 if (!(phba->pport->load_flag & FC_UNLOADING)) in lpfc_vport_delete()
768 if (!(phba->pport->load_flag & FC_UNLOADING)) { in lpfc_vport_delete()
780 lpfc_free_vpi(phba, vport->vpi); in lpfc_vport_delete()
782 spin_lock_irq(&phba->hbalock); in lpfc_vport_delete()
784 spin_unlock_irq(&phba->hbalock); in lpfc_vport_delete()
792 lpfc_create_vport_work_array(struct lpfc_hba *phba) in lpfc_create_vport_work_array() argument
797 vports = kzalloc((phba->max_vports + 1) * sizeof(struct lpfc_vport *), in lpfc_create_vport_work_array()
801 spin_lock_irq(&phba->hbalock); in lpfc_create_vport_work_array()
802 list_for_each_entry(port_iterator, &phba->port_list, listentry) { in lpfc_create_vport_work_array()
813 spin_unlock_irq(&phba->hbalock); in lpfc_create_vport_work_array()
818 lpfc_destroy_vport_work_array(struct lpfc_hba *phba, struct lpfc_vport **vports) in lpfc_destroy_vport_work_array() argument
823 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) in lpfc_destroy_vport_work_array()