Lines Matching defs:phba

88 lpfc_alloc_vpi(struct lpfc_hba *phba)
92 spin_lock_irq(&phba->hbalock);
94 vpi = find_next_zero_bit(phba->vpi_bmask, (phba->max_vpi + 1), 1);
95 if (vpi > phba->max_vpi)
98 set_bit(vpi, phba->vpi_bmask);
99 if (phba->sli_rev == LPFC_SLI_REV4)
100 phba->sli4_hba.max_cfg_param.vpi_used++;
101 spin_unlock_irq(&phba->hbalock);
106 lpfc_free_vpi(struct lpfc_hba *phba, int vpi)
110 spin_lock_irq(&phba->hbalock);
111 clear_bit(vpi, phba->vpi_bmask);
112 if (phba->sli_rev == LPFC_SLI_REV4)
113 phba->sli4_hba.max_cfg_param.vpi_used--;
114 spin_unlock_irq(&phba->hbalock);
118 lpfc_vport_sparm(struct lpfc_hba *phba, struct lpfc_vport *vport)
125 pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
131 rc = lpfc_read_sparam(phba, pmb, vport->vpi);
133 mempool_free(pmb, phba->mbox_mem_pool);
147 rc = lpfc_sli_issue_mbox_wait(phba, pmb, phba->fc_ratov * 2);
154 lpfc_mbox_rsrc_cleanup(phba, pmb,
163 lpfc_mbox_rsrc_cleanup(phba, pmb,
175 lpfc_mbox_rsrc_cleanup(phba, pmb, MBOX_THD_UNLOCKED);
180 lpfc_valid_wwn_format(struct lpfc_hba *phba, struct lpfc_name *wwn,
190 lpfc_printf_log(phba, KERN_ERR, LOG_VPORT,
202 lpfc_unique_wwpn(struct lpfc_hba *phba, struct lpfc_vport *new_vport)
207 spin_lock_irqsave(&phba->port_list_lock, flags);
208 list_for_each_entry(vport, &phba->port_list, listentry) {
215 spin_unlock_irqrestore(&phba->port_list_lock, flags);
219 spin_unlock_irqrestore(&phba->port_list_lock, flags);
240 struct lpfc_hba *phba = vport->phba;
249 wait_time_max = msecs_to_jiffies(((phba->fc_ratov * 3) + 3) * 1000);
298 struct lpfc_hba *phba = pport->phba;
305 if ((phba->sli_rev < 3) || !(phba->cfg_enable_npiv)) {
306 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
309 phba->sli_rev);
315 if (phba->nvmet_support) {
316 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
323 vpi = lpfc_alloc_vpi(phba);
325 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
328 phba->max_vpi);
335 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
338 lpfc_free_vpi(phba, vpi);
343 vport = lpfc_create_port(phba, instance, &fc_vport->dev);
345 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
347 lpfc_free_vpi(phba, vpi);
355 if ((status = lpfc_vport_sparm(phba, vport))) {
366 lpfc_free_vpi(phba, vpi);
377 if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") ||
378 !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) {
382 lpfc_free_vpi(phba, vpi);
388 if (!lpfc_unique_wwpn(phba, vport)) {
392 lpfc_free_vpi(phba, vpi);
402 vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth;
412 if (phba->cfg_enable_SmartSAN ||
413 (phba->cfg_fdmi_on == LPFC_FDMI_SUPPORT)) {
415 vport->fdmi_hba_mask = phba->pport->fdmi_hba_mask;
416 vport->fdmi_port_mask = phba->pport->fdmi_port_mask;
423 if ((phba->sli_rev == LPFC_SLI_REV4) &&
427 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
431 lpfc_free_vpi(phba, vpi);
434 } else if (phba->sli_rev == LPFC_SLI_REV4) {
445 if ((phba->link_state < LPFC_LINK_UP) ||
447 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) {
462 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID);
465 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) {
490 struct lpfc_hba *phba = vport->phba;
507 msecs_to_jiffies(phba->fc_ratov * 2000));
537 struct lpfc_hba *phba = vport->phba;
545 if (ndlp && phba->link_state >= LPFC_LINK_UP)
559 if (phba->sli_rev == LPFC_SLI_REV4)
572 struct lpfc_hba *phba = vport->phba;
575 if ((phba->link_state < LPFC_LINK_UP) ||
576 (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) {
592 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID);
594 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) {
627 struct lpfc_hba *phba = vport->phba;
639 !test_bit(FC_UNLOADING, &phba->pport->load_flag)) {
652 if (!test_bit(FC_UNLOADING, &phba->pport->load_flag)) {
654 while (check_count < ((phba->fc_ratov * 3) + 3) &&
683 phba->link_state >= LPFC_LINK_UP &&
684 phba->fc_topology != LPFC_TOPOLOGY_LOOP) {
689 lpfc_printf_log(vport->phba, KERN_WARNING,
715 if (!test_bit(FC_UNLOADING, &phba->pport->load_flag))
730 if (!test_bit(FC_UNLOADING, &phba->pport->load_flag)) {
744 lpfc_free_vpi(phba, vport->vpi);
746 spin_lock_irq(&phba->port_list_lock);
748 spin_unlock_irq(&phba->port_list_lock);
756 lpfc_create_vport_work_array(struct lpfc_hba *phba)
761 vports = kcalloc(phba->max_vports + 1, sizeof(struct lpfc_vport *),
765 spin_lock_irq(&phba->port_list_lock);
766 list_for_each_entry(port_iterator, &phba->port_list, listentry) {
778 spin_unlock_irq(&phba->port_list_lock);
783 lpfc_destroy_vport_work_array(struct lpfc_hba *phba, struct lpfc_vport **vports)
788 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++)