Lines Matching refs:phba

53 static int lpfc_issue_fabric_iocb(struct lpfc_hba *phba,
84 struct lpfc_hba *phba = vport->phba; in lpfc_els_chk_latt() local
88 phba->link_state == LPFC_LINK_DOWN || in lpfc_els_chk_latt()
89 phba->sli_rev > LPFC_SLI_REV3) in lpfc_els_chk_latt()
93 if (lpfc_readl(phba->HAregaddr, &ha_copy)) in lpfc_els_chk_latt()
103 phba->pport->port_state); in lpfc_els_chk_latt()
115 if (phba->link_state != LPFC_CLEAR_LA) in lpfc_els_chk_latt()
116 lpfc_issue_clear_la(phba, vport); in lpfc_els_chk_latt()
155 struct lpfc_hba *phba = vport->phba; in lpfc_prep_els_iocb() local
162 if (!lpfc_is_link_up(phba)) in lpfc_prep_els_iocb()
166 elsiocb = lpfc_sli_get_iocbq(phba); in lpfc_prep_els_iocb()
176 (phba->hba_flag & HBA_FIP_SUPPORT) && in lpfc_prep_els_iocb()
206 pcmd->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &pcmd->phys); in lpfc_prep_els_iocb()
216 prsp->virt = lpfc_mbuf_alloc(phba, MEM_PRI, in lpfc_prep_els_iocb()
227 pbuflist->virt = lpfc_mbuf_alloc(phba, MEM_PRI, in lpfc_prep_els_iocb()
245 icmd->ulpTimeout = phba->fc_ratov * 2; in lpfc_prep_els_iocb()
263 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) || in lpfc_prep_els_iocb()
264 ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_prep_els_iocb()
271 icmd->ulpContext = phba->vpi_ids[vport->vpi]; in lpfc_prep_els_iocb()
306 elsiocb->drvrTimeout = (phba->fc_ratov << 1) + LPFC_DRVR_TIMEOUT; in lpfc_prep_els_iocb()
334 lpfc_mbuf_free(phba, prsp->virt, prsp->phys); in lpfc_prep_els_iocb()
338 lpfc_mbuf_free(phba, pcmd->virt, pcmd->phys); in lpfc_prep_els_iocb()
343 lpfc_sli_release_iocbq(phba, elsiocb); in lpfc_prep_els_iocb()
366 struct lpfc_hba *phba = vport->phba; in lpfc_issue_fabric_reglogin() local
374 sp = &phba->fc_fabparam; in lpfc_issue_fabric_reglogin()
381 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_issue_fabric_reglogin()
388 lpfc_config_link(phba, mbox); in lpfc_issue_fabric_reglogin()
392 rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); in lpfc_issue_fabric_reglogin()
398 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_issue_fabric_reglogin()
403 rc = lpfc_reg_rpi(phba, vport->vpi, Fabric_DID, (uint8_t *)sp, mbox, in lpfc_issue_fabric_reglogin()
417 rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); in lpfc_issue_fabric_reglogin()
431 lpfc_mbuf_free(phba, mp->virt, mp->phys); in lpfc_issue_fabric_reglogin()
434 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_issue_fabric_reglogin()
457 struct lpfc_hba *phba = vport->phba; in lpfc_issue_reg_vfi() local
464 if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_issue_reg_vfi()
465 !(phba->link_flag & LS_LOOPBACK_MODE) && in lpfc_issue_reg_vfi()
479 dmabuf->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &dmabuf->phys); in lpfc_issue_reg_vfi()
485 mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_issue_reg_vfi()
491 memcpy(dmabuf->virt, &phba->fc_fabparam, sizeof(vport->fc_sparam)); in lpfc_issue_reg_vfi()
497 rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); in lpfc_issue_reg_vfi()
505 mempool_free(mboxq, phba->mbox_mem_pool); in lpfc_issue_reg_vfi()
507 lpfc_mbuf_free(phba, dmabuf->virt, dmabuf->phys); in lpfc_issue_reg_vfi()
531 struct lpfc_hba *phba = vport->phba; in lpfc_issue_unreg_vfi() local
536 mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_issue_unreg_vfi()
538 lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, in lpfc_issue_unreg_vfi()
540 "HBA state x%x\n", phba->pport->port_state); in lpfc_issue_unreg_vfi()
548 rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); in lpfc_issue_unreg_vfi()
550 lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, in lpfc_issue_unreg_vfi()
553 rc, phba->pport->port_state); in lpfc_issue_unreg_vfi()
554 mempool_free(mboxq, phba->mbox_mem_pool); in lpfc_issue_unreg_vfi()
643 struct lpfc_hba *phba = vport->phba; in lpfc_cmpl_els_flogi_fabric() local
652 phba->fc_edtov = be32_to_cpu(sp->cmn.e_d_tov); in lpfc_cmpl_els_flogi_fabric()
654 phba->fc_edtov = (phba->fc_edtov + 999999) / 1000000; in lpfc_cmpl_els_flogi_fabric()
656 phba->fc_edtovResol = sp->cmn.edtovResolution; in lpfc_cmpl_els_flogi_fabric()
657 phba->fc_ratov = (be32_to_cpu(sp->cmn.w2.r_a_tov) + 999) / 1000; in lpfc_cmpl_els_flogi_fabric()
659 if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { in lpfc_cmpl_els_flogi_fabric()
685 memcpy(&phba->fc_fabparam, sp, sizeof(struct serv_parm)); in lpfc_cmpl_els_flogi_fabric()
687 if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) { in lpfc_cmpl_els_flogi_fabric()
694 spin_lock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi_fabric()
695 phba->link_flag |= LS_NPIV_FAB_SUPPORTED; in lpfc_cmpl_els_flogi_fabric()
696 spin_unlock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi_fabric()
704 spin_lock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi_fabric()
705 phba->link_flag &= ~LS_NPIV_FAB_SUPPORTED; in lpfc_cmpl_els_flogi_fabric()
706 spin_unlock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi_fabric()
714 if (phba->sli4_hba.lnk_info.lnk_tp == LPFC_LNK_TYPE_FC) { in lpfc_cmpl_els_flogi_fabric()
716 if ((phba->sli_rev == LPFC_SLI_REV4) && fabric_param_changed) in lpfc_cmpl_els_flogi_fabric()
717 lpfc_unregister_fcf_prep(phba); in lpfc_cmpl_els_flogi_fabric()
744 if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_cmpl_els_flogi_fabric()
759 } else if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_cmpl_els_flogi_fabric()
766 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_flogi_fabric()
770 if (phba->sli_rev < LPFC_SLI_REV4) { in lpfc_cmpl_els_flogi_fabric()
772 if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED && in lpfc_cmpl_els_flogi_fabric()
774 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_flogi_fabric()
782 lpfc_start_fdiscs(phba); in lpfc_cmpl_els_flogi_fabric()
783 lpfc_do_scr_ns_plogi(phba, vport); in lpfc_cmpl_els_flogi_fabric()
821 struct lpfc_hba *phba = vport->phba; in lpfc_cmpl_els_flogi_nport() local
829 phba->fc_edtov = FF_DEF_EDTOV; in lpfc_cmpl_els_flogi_nport()
830 phba->fc_ratov = FF_DEF_RATOV; in lpfc_cmpl_els_flogi_nport()
833 memcpy(&phba->fc_fabparam, sp, sizeof(struct serv_parm)); in lpfc_cmpl_els_flogi_nport()
850 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_cmpl_els_flogi_nport()
854 lpfc_config_link(phba, mbox); in lpfc_cmpl_els_flogi_nport()
858 rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); in lpfc_cmpl_els_flogi_nport()
860 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_cmpl_els_flogi_nport()
871 if ((phba->sli_rev == LPFC_SLI_REV4) && rc) in lpfc_cmpl_els_flogi_nport()
885 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_cmpl_els_flogi_nport()
913 phba->sli3_options &= ~LPFC_SLI3_NPIV_ENABLED; in lpfc_cmpl_els_flogi_nport()
919 if ((phba->sli_rev == LPFC_SLI_REV4) && phba->fc_topology_changed) { in lpfc_cmpl_els_flogi_nport()
920 lpfc_unregister_fcf_prep(phba); in lpfc_cmpl_els_flogi_nport()
932 phba->fc_topology_changed = 0; in lpfc_cmpl_els_flogi_nport()
967 lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_flogi() argument
998 if ((phba->hba_flag & HBA_FIP_SUPPORT) && in lpfc_cmpl_els_flogi()
999 (phba->fcf.fcf_flag & FCF_DISCOVERY)) { in lpfc_cmpl_els_flogi()
1000 if (phba->link_state < LPFC_LINK_UP) in lpfc_cmpl_els_flogi()
1002 if ((phba->fcoe_cvl_eventtag_attn == in lpfc_cmpl_els_flogi()
1003 phba->fcoe_cvl_eventtag) && in lpfc_cmpl_els_flogi()
1009 phba->fcoe_cvl_eventtag_attn = in lpfc_cmpl_els_flogi()
1010 phba->fcoe_cvl_eventtag; in lpfc_cmpl_els_flogi()
1011 lpfc_printf_log(phba, KERN_WARNING, LOG_FIP | LOG_ELS, in lpfc_cmpl_els_flogi()
1015 phba->fcf.current_rec.fcf_indx, in lpfc_cmpl_els_flogi()
1018 lpfc_sli4_set_fcf_flogi_fail(phba, in lpfc_cmpl_els_flogi()
1019 phba->fcf.current_rec.fcf_indx); in lpfc_cmpl_els_flogi()
1020 fcf_index = lpfc_sli4_fcf_rr_next_index_get(phba); in lpfc_cmpl_els_flogi()
1032 irsp->ulpTimeout, phba->hba_flag, in lpfc_cmpl_els_flogi()
1033 phba->fcf.fcf_flag); in lpfc_cmpl_els_flogi()
1036 if (lpfc_els_retry(phba, cmdiocb, rspiocb)) in lpfc_cmpl_els_flogi()
1054 if (phba->alpa_map[0] == 0) in lpfc_cmpl_els_flogi()
1056 if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_cmpl_els_flogi()
1059 phba->fc_topology_changed)) { in lpfc_cmpl_els_flogi()
1061 if (phba->fc_topology_changed) { in lpfc_cmpl_els_flogi()
1062 lpfc_unregister_fcf_prep(phba); in lpfc_cmpl_els_flogi()
1066 phba->fc_topology_changed = 0; in lpfc_cmpl_els_flogi()
1106 else if (!(phba->hba_flag & HBA_FCOE_MODE)) in lpfc_cmpl_els_flogi()
1116 phba->fcf.current_rec.fcf_indx, in lpfc_cmpl_els_flogi()
1117 phba->fcf.current_rec.switch_name[0], in lpfc_cmpl_els_flogi()
1118 phba->fcf.current_rec.switch_name[1], in lpfc_cmpl_els_flogi()
1119 phba->fcf.current_rec.switch_name[2], in lpfc_cmpl_els_flogi()
1120 phba->fcf.current_rec.switch_name[3], in lpfc_cmpl_els_flogi()
1121 phba->fcf.current_rec.switch_name[4], in lpfc_cmpl_els_flogi()
1122 phba->fcf.current_rec.switch_name[5], in lpfc_cmpl_els_flogi()
1123 phba->fcf.current_rec.switch_name[6], in lpfc_cmpl_els_flogi()
1124 phba->fcf.current_rec.switch_name[7], in lpfc_cmpl_els_flogi()
1125 phba->fcf.current_rec.fabric_name[0], in lpfc_cmpl_els_flogi()
1126 phba->fcf.current_rec.fabric_name[1], in lpfc_cmpl_els_flogi()
1127 phba->fcf.current_rec.fabric_name[2], in lpfc_cmpl_els_flogi()
1128 phba->fcf.current_rec.fabric_name[3], in lpfc_cmpl_els_flogi()
1129 phba->fcf.current_rec.fabric_name[4], in lpfc_cmpl_els_flogi()
1130 phba->fcf.current_rec.fabric_name[5], in lpfc_cmpl_els_flogi()
1131 phba->fcf.current_rec.fabric_name[6], in lpfc_cmpl_els_flogi()
1132 phba->fcf.current_rec.fabric_name[7]); in lpfc_cmpl_els_flogi()
1134 spin_lock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi()
1135 phba->fcf.fcf_flag &= ~FCF_DISCOVERY; in lpfc_cmpl_els_flogi()
1136 phba->hba_flag &= ~(FCF_RR_INPROG | HBA_DEVLOSS_TMO); in lpfc_cmpl_els_flogi()
1137 spin_unlock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi()
1142 if (phba->hba_flag & HBA_FIP_SUPPORT) in lpfc_cmpl_els_flogi()
1147 phba->fcf.current_rec.fcf_indx); in lpfc_cmpl_els_flogi()
1148 spin_lock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi()
1149 phba->fcf.fcf_flag &= ~FCF_DISCOVERY; in lpfc_cmpl_els_flogi()
1150 phba->hba_flag &= ~(FCF_RR_INPROG | HBA_DEVLOSS_TMO); in lpfc_cmpl_els_flogi()
1151 spin_unlock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi()
1157 spin_lock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi()
1158 phba->fcf.fcf_flag &= ~FCF_DISCOVERY; in lpfc_cmpl_els_flogi()
1159 spin_unlock_irq(&phba->hbalock); in lpfc_cmpl_els_flogi()
1173 (phba->link_state != LPFC_CLEAR_LA)) { in lpfc_cmpl_els_flogi()
1175 lpfc_issue_clear_la(phba, vport); in lpfc_cmpl_els_flogi()
1178 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_flogi()
1207 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_flogi() local
1242 if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_issue_els_flogi()
1243 if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == in lpfc_issue_els_flogi()
1249 elsiocb->iocb.ulpContext = phba->fcf.fcfi; in lpfc_issue_els_flogi()
1258 if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) { in lpfc_issue_els_flogi()
1267 if (phba->fc_topology != LPFC_TOPOLOGY_LOOP) { in lpfc_issue_els_flogi()
1272 tmo = phba->fc_ratov; in lpfc_issue_els_flogi()
1273 phba->fc_ratov = LPFC_DISC_FLOGI_TMO; in lpfc_issue_els_flogi()
1275 phba->fc_ratov = tmo; in lpfc_issue_els_flogi()
1277 phba->fc_stat.elsXmitFLOGI++; in lpfc_issue_els_flogi()
1282 phba->sli3_options, 0, 0); in lpfc_issue_els_flogi()
1284 rc = lpfc_issue_fabric_iocb(phba, elsiocb); in lpfc_issue_els_flogi()
1286 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_flogi()
1307 lpfc_els_abort_flogi(struct lpfc_hba *phba) in lpfc_els_abort_flogi() argument
1315 lpfc_printf_log(phba, KERN_INFO, LOG_DISCOVERY, in lpfc_els_abort_flogi()
1319 pring = &phba->sli.ring[LPFC_ELS_RING]; in lpfc_els_abort_flogi()
1325 spin_lock_irq(&phba->hbalock); in lpfc_els_abort_flogi()
1332 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_els_abort_flogi()
1335 spin_unlock_irq(&phba->hbalock); in lpfc_els_abort_flogi()
1359 struct lpfc_hba *phba = vport->phba; in lpfc_initial_flogi() local
1369 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_initial_flogi()
1413 struct lpfc_hba *phba = vport->phba; in lpfc_initial_fdisc() local
1420 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_initial_fdisc()
1506 lpfc_plogi_confirm_nport(struct lpfc_hba *phba, uint32_t *prsp, in lpfc_plogi_confirm_nport() argument
1538 if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_plogi_confirm_nport()
1539 active_rrqs_xri_bitmap = mempool_alloc(phba->active_rrq_pool, in lpfc_plogi_confirm_nport()
1543 phba->cfg_rrq_xri_bitmap_sz); in lpfc_plogi_confirm_nport()
1556 phba->active_rrq_pool); in lpfc_plogi_confirm_nport()
1559 new_ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_ATOMIC); in lpfc_plogi_confirm_nport()
1563 phba->active_rrq_pool); in lpfc_plogi_confirm_nport()
1573 phba->active_rrq_pool); in lpfc_plogi_confirm_nport()
1581 phba->active_rrq_pool); in lpfc_plogi_confirm_nport()
1585 if ((phba->sli_rev == LPFC_SLI_REV4) && active_rrqs_xri_bitmap) in lpfc_plogi_confirm_nport()
1588 phba->cfg_rrq_xri_bitmap_sz); in lpfc_plogi_confirm_nport()
1591 if (phba->sli_rev == LPFC_SLI_REV4 && in lpfc_plogi_confirm_nport()
1595 phba->cfg_rrq_xri_bitmap_sz); in lpfc_plogi_confirm_nport()
1601 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_plogi_confirm_nport()
1604 phba->cfg_rrq_xri_bitmap_sz); in lpfc_plogi_confirm_nport()
1643 spin_lock_irq(&phba->ndlp_lock); in lpfc_plogi_confirm_nport()
1645 spin_unlock_irq(&phba->ndlp_lock); in lpfc_plogi_confirm_nport()
1650 if (phba->sli_rev == LPFC_SLI_REV4 && in lpfc_plogi_confirm_nport()
1654 phba->cfg_rrq_xri_bitmap_sz); in lpfc_plogi_confirm_nport()
1668 if (phba->sli_rev == LPFC_SLI_REV4 && in lpfc_plogi_confirm_nport()
1672 phba->cfg_rrq_xri_bitmap_sz); in lpfc_plogi_confirm_nport()
1696 if (phba->sli_rev == LPFC_SLI_REV4 && in lpfc_plogi_confirm_nport()
1699 phba->active_rrq_pool); in lpfc_plogi_confirm_nport()
1748 lpfc_cmpl_els_rrq(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_rrq() argument
1790 (phba)->pport->cfg_log_verbose & LOG_ELS) in lpfc_cmpl_els_rrq()
1798 lpfc_clr_rrq_active(phba, rrq->xritag, rrq); in lpfc_cmpl_els_rrq()
1799 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_rrq()
1823 lpfc_cmpl_els_plogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_plogi() argument
1878 if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { in lpfc_cmpl_els_plogi()
1891 (phba)->pport->cfg_log_verbose & LOG_ELS) in lpfc_cmpl_els_plogi()
1907 ndlp = lpfc_plogi_confirm_nport(phba, prsp->virt, ndlp); in lpfc_cmpl_els_plogi()
1927 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_plogi()
1955 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_plogi() local
1999 phba->fc_stat.elsXmitPLOGI++; in lpfc_issue_els_plogi()
2001 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_issue_els_plogi()
2004 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_plogi()
2024 lpfc_cmpl_els_prli(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_prli() argument
2059 if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { in lpfc_cmpl_els_prli()
2079 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_prli()
2109 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_prli() local
2134 if (phba->vpd.rev.feaLevelHigh >= 0x02) { in lpfc_issue_els_prli()
2152 phba->fc_stat.elsXmitPRLI++; in lpfc_issue_els_prli()
2157 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == in lpfc_issue_els_prli()
2162 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_prli()
2209 struct lpfc_hba *phba = vport->phba; in lpfc_adisc_done() local
2215 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && in lpfc_adisc_done()
2217 (phba->sli_rev < LPFC_SLI_REV4)) { in lpfc_adisc_done()
2226 lpfc_issue_clear_la(phba, vport); in lpfc_adisc_done()
2227 lpfc_issue_reg_vpi(phba, vport); in lpfc_adisc_done()
2236 lpfc_issue_clear_la(phba, vport); in lpfc_adisc_done()
2303 lpfc_cmpl_els_adisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_adisc() argument
2346 if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { in lpfc_cmpl_els_adisc()
2374 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_adisc()
2403 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_adisc() local
2423 ap->hardAL_PA = phba->fc_pref_ALPA; in lpfc_issue_els_adisc()
2432 phba->fc_stat.elsXmitADISC++; in lpfc_issue_els_adisc()
2437 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == in lpfc_issue_els_adisc()
2442 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_adisc()
2461 lpfc_cmpl_els_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_logo() argument
2510 if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { in lpfc_cmpl_els_logo()
2531 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_logo()
2535 phba->pport->fc_myDID = 0; in lpfc_cmpl_els_logo()
2536 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_cmpl_els_logo()
2538 lpfc_config_link(phba, mbox); in lpfc_cmpl_els_logo()
2541 if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) == in lpfc_cmpl_els_logo()
2543 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_cmpl_els_logo()
2596 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_logo() local
2640 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_logo()
2644 phba->fc_stat.elsXmitLOGO++; in lpfc_issue_els_logo()
2650 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_issue_els_logo()
2656 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_logo()
2679 lpfc_cmpl_els_cmd(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_cmd() argument
2698 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_cmd()
2727 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_scr() local
2737 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_issue_els_scr()
2772 phba->fc_stat.elsXmitSCR++; in lpfc_issue_els_scr()
2774 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == in lpfc_issue_els_scr()
2781 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_scr()
2817 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_farpr() local
2830 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_issue_els_farpr()
2879 phba->fc_stat.elsXmitFARPR++; in lpfc_issue_els_farpr()
2881 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == in lpfc_issue_els_farpr()
2888 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_farpr()
2972 struct lpfc_hba *phba = vport->phba; in lpfc_els_retry_delay() local
2976 spin_lock_irqsave(&phba->hbalock, flags); in lpfc_els_retry_delay()
2978 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_els_retry_delay()
2988 list_add_tail(&evtp->evt_listp, &phba->work_list); in lpfc_els_retry_delay()
2989 lpfc_worker_wake_up(phba); in lpfc_els_retry_delay()
2991 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_els_retry_delay()
3089 lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_els_retry() argument
3133 if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_els_retry()
3138 lpfc_set_rrq_active(phba, ndlp, in lpfc_els_retry()
3147 phba->pcidev->device) { in lpfc_els_retry()
3148 phba->fc_topology = LPFC_TOPOLOGY_LOOP; in lpfc_els_retry()
3149 phba->pport->fc_myDID = 0; in lpfc_els_retry()
3150 phba->alpa_map[0] = 0; in lpfc_els_retry()
3151 phba->alpa_map[1] = 0; in lpfc_els_retry()
3244 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && in lpfc_els_retry()
3283 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && in lpfc_els_retry()
3311 (phba->fc_topology != LPFC_TOPOLOGY_LOOP) && in lpfc_els_retry()
3316 if (phba->link_flag != LS_LOOPBACK_MODE) in lpfc_els_retry()
3334 phba->fc_stat.elsRetryExceeded++; in lpfc_els_retry()
3344 if (phba->fcf.fcf_flag & FCF_DISCOVERY) { in lpfc_els_retry()
3372 phba->fc_stat.elsXmitRetry++; in lpfc_els_retry()
3374 phba->fc_stat.elsDelayRetry++; in lpfc_els_retry()
3460 lpfc_els_free_data(struct lpfc_hba *phba, struct lpfc_dmabuf *buf_ptr1) in lpfc_els_free_data() argument
3469 lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); in lpfc_els_free_data()
3472 lpfc_mbuf_free(phba, buf_ptr1->virt, buf_ptr1->phys); in lpfc_els_free_data()
3490 lpfc_els_free_bpl(struct lpfc_hba *phba, struct lpfc_dmabuf *buf_ptr) in lpfc_els_free_bpl() argument
3492 lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); in lpfc_els_free_bpl()
3525 lpfc_els_free_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *elsiocb) in lpfc_els_free_iocb() argument
3561 spin_lock_irq(&phba->hbalock); in lpfc_els_free_iocb()
3568 &phba->elsbuf); in lpfc_els_free_iocb()
3569 phba->elsbuf_cnt++; in lpfc_els_free_iocb()
3572 list_add_tail(&buf_ptr->list, &phba->elsbuf); in lpfc_els_free_iocb()
3573 phba->elsbuf_cnt++; in lpfc_els_free_iocb()
3574 spin_unlock_irq(&phba->hbalock); in lpfc_els_free_iocb()
3578 lpfc_els_free_data(phba, buf_ptr1); in lpfc_els_free_iocb()
3584 lpfc_els_free_bpl(phba, buf_ptr); in lpfc_els_free_iocb()
3586 lpfc_sli_release_iocbq(phba, elsiocb); in lpfc_els_free_iocb()
3608 lpfc_cmpl_els_logo_acc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_logo_acc() argument
3645 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_logo_acc()
3662 lpfc_mbx_cmpl_dflt_rpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_mbx_cmpl_dflt_rpi() argument
3670 lpfc_mbuf_free(phba, mp->virt, mp->phys); in lpfc_mbx_cmpl_dflt_rpi()
3672 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_mbx_cmpl_dflt_rpi()
3711 lpfc_cmpl_els_rsp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_rsp() argument
3746 lpfc_mbuf_free(phba, mp->virt, mp->phys); in lpfc_cmpl_els_rsp()
3749 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_cmpl_els_rsp()
3795 if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) in lpfc_cmpl_els_rsp()
3836 lpfc_mbuf_free(phba, mp->virt, mp->phys); in lpfc_cmpl_els_rsp()
3839 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_cmpl_els_rsp()
3861 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_rsp()
3896 struct lpfc_hba *phba = vport->phba; in lpfc_els_rsp_acc() local
3997 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_acc()
3998 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rsp_acc()
4000 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_acc()
4033 struct lpfc_hba *phba = vport->phba; in lpfc_els_rsp_reject() local
4072 phba->fc_stat.elsXmitLSRJT++; in lpfc_els_rsp_reject()
4074 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rsp_reject()
4077 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_reject()
4106 struct lpfc_hba *phba = vport->phba; in lpfc_els_rsp_adisc_acc() local
4138 ap->hardAL_PA = phba->fc_pref_ALPA; in lpfc_els_rsp_adisc_acc()
4147 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_adisc_acc()
4149 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rsp_adisc_acc()
4151 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_adisc_acc()
4180 struct lpfc_hba *phba = vport->phba; in lpfc_els_rsp_prli_acc() local
4217 vpd = &phba->vpd; in lpfc_els_rsp_prli_acc()
4241 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_prli_acc()
4244 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rsp_prli_acc()
4246 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_prli_acc()
4282 struct lpfc_hba *phba = vport->phba; in lpfc_els_rsp_rnid_acc() local
4341 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_rnid_acc()
4344 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rsp_rnid_acc()
4346 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_rnid_acc()
4364 struct lpfc_hba *phba = vport->phba; in lpfc_els_clear_rrq() local
4395 lpfc_clr_rrq_active(phba, xri, prrq); in lpfc_els_clear_rrq()
4414 struct lpfc_hba *phba = vport->phba; in lpfc_els_rsp_echo_acc() local
4448 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_echo_acc()
4451 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rsp_echo_acc()
4453 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_echo_acc()
4677 lpfc_rdp_res_speed(struct fc_rdp_port_speed_desc *desc, struct lpfc_hba *phba) in lpfc_rdp_res_speed() argument
4684 switch (phba->sli4_hba.link_state.speed) { in lpfc_rdp_res_speed()
4713 if (phba->lmt & LMT_32Gb) in lpfc_rdp_res_speed()
4715 if (phba->lmt & LMT_16Gb) in lpfc_rdp_res_speed()
4717 if (phba->lmt & LMT_10Gb) in lpfc_rdp_res_speed()
4719 if (phba->lmt & LMT_8Gb) in lpfc_rdp_res_speed()
4721 if (phba->lmt & LMT_4Gb) in lpfc_rdp_res_speed()
4723 if (phba->lmt & LMT_2Gb) in lpfc_rdp_res_speed()
4725 if (phba->lmt & LMT_1Gb) in lpfc_rdp_res_speed()
4737 struct lpfc_hba *phba) in lpfc_rdp_res_diag_port_names() argument
4742 memcpy(desc->port_names.wwnn, phba->wwnn, in lpfc_rdp_res_diag_port_names()
4745 memcpy(desc->port_names.wwpn, &phba->wwpn, in lpfc_rdp_res_diag_port_names()
4775 lpfc_els_rdp_cmpl(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context, in lpfc_els_rdp_cmpl() argument
4820 lpfc_rdp_res_speed(&rdp_res->portspeed_desc, phba); in lpfc_els_rdp_cmpl()
4823 lpfc_rdp_res_diag_port_names(&rdp_res->diag_port_names_desc, phba); in lpfc_els_rdp_cmpl()
4830 phba->fc_stat.elsXmitACC++; in lpfc_els_rdp_cmpl()
4831 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rdp_cmpl()
4833 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rdp_cmpl()
4855 phba->fc_stat.elsXmitLSRJT++; in lpfc_els_rdp_cmpl()
4857 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_rdp_cmpl()
4860 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rdp_cmpl()
4866 lpfc_get_rdp_info(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context) in lpfc_get_rdp_info() argument
4871 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_get_rdp_info()
4873 lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_ELS, in lpfc_get_rdp_info()
4878 if (lpfc_sli4_dump_page_a0(phba, mbox)) in lpfc_get_rdp_info()
4883 rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); in lpfc_get_rdp_info()
4891 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_get_rdp_info()
4916 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_rdp() local
4924 if (phba->sli_rev < LPFC_SLI_REV4 || in lpfc_els_rcv_rdp()
4926 &phba->sli4_hba.sli_intf) != in lpfc_els_rcv_rdp()
4933 if (phba->sli_rev < LPFC_SLI_REV4 || (phba->hba_flag & HBA_FCOE_MODE)) { in lpfc_els_rcv_rdp()
4971 if (lpfc_get_rdp_info(phba, rdp_context)) { in lpfc_els_rcv_rdp()
4995 lpfc_els_lcb_rsp(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_els_lcb_rsp() argument
5020 lpfc_printf_log(phba, KERN_INFO, LOG_MBOX, in lpfc_els_lcb_rsp()
5028 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_els_lcb_rsp()
5032 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_els_lcb_rsp()
5034 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, in lpfc_els_lcb_rsp()
5057 phba->fc_stat.elsXmitACC++; in lpfc_els_lcb_rsp()
5058 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_lcb_rsp()
5060 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_lcb_rsp()
5067 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, in lpfc_els_lcb_rsp()
5084 phba->fc_stat.elsXmitLSRJT++; in lpfc_els_lcb_rsp()
5085 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_els_lcb_rsp()
5087 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_lcb_rsp()
5097 struct lpfc_hba *phba = vport->phba; in lpfc_sli4_set_beacon() local
5102 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_sli4_set_beacon()
5108 lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, in lpfc_sli4_set_beacon()
5112 mbox->vport = phba->pport; in lpfc_sli4_set_beacon()
5115 phba->sli4_hba.physical_port); in lpfc_sli4_set_beacon()
5120 rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); in lpfc_sli4_set_beacon()
5122 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_sli4_set_beacon()
5148 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_lcb() local
5170 if (phba->sli_rev < LPFC_SLI_REV4 || in lpfc_els_rcv_lcb()
5171 (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != in lpfc_els_rcv_lcb()
5177 if (phba->hba_flag & HBA_FCOE_MODE) { in lpfc_els_rcv_lcb()
5249 struct lpfc_hba *phba = vport->phba; in lpfc_els_flush_rscn() local
5263 lpfc_in_buf_free(phba, vport->fc_rscn_id_list[i]); in lpfc_els_flush_rscn()
5451 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_rscn() local
5492 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && in lpfc_els_rcv_rscn()
5501 if (lpfc_find_vport_by_did(phba, nportid)) in lpfc_els_rcv_rscn()
5638 struct lpfc_hba *phba = vport->phba; in lpfc_els_handle_rscn() local
5685 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_els_handle_rscn()
5736 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_flogi() local
5755 if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { in lpfc_els_rcv_flogi()
5777 if (phba->sli_rev < LPFC_SLI_REV4) { in lpfc_els_rcv_flogi()
5778 mbox = mempool_alloc(phba->mbox_mem_pool, in lpfc_els_rcv_flogi()
5782 lpfc_linkdown(phba); in lpfc_els_rcv_flogi()
5783 lpfc_init_link(phba, mbox, in lpfc_els_rcv_flogi()
5784 phba->cfg_topology, in lpfc_els_rcv_flogi()
5785 phba->cfg_link_speed); in lpfc_els_rcv_flogi()
5789 rc = lpfc_sli_issue_mbox(phba, mbox, in lpfc_els_rcv_flogi()
5791 lpfc_set_loopback_flag(phba); in lpfc_els_rcv_flogi()
5793 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_els_rcv_flogi()
5799 lpfc_els_abort_flogi(phba); in lpfc_els_rcv_flogi()
5879 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_els_rcv_flogi()
5883 lpfc_config_link(phba, mbox); in lpfc_els_rcv_flogi()
5887 rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); in lpfc_els_rcv_flogi()
5889 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_els_rcv_flogi()
6024 if (vport->phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_rcv_rrq()
6048 lpfc_els_rsp_rls_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_els_rsp_rls_acc() argument
6069 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_els_rsp_rls_acc()
6074 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, in lpfc_els_rsp_rls_acc()
6082 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_els_rsp_rls_acc()
6101 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_els_rsp_rls_acc()
6110 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_rls_acc()
6111 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == IOCB_ERROR) in lpfc_els_rsp_rls_acc()
6112 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_rls_acc()
6135 lpfc_els_rsp_rps_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_els_rsp_rps_acc() argument
6157 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_els_rsp_rps_acc()
6162 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_els_rsp_rps_acc()
6163 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, in lpfc_els_rsp_rps_acc()
6182 if (phba->fc_topology != LPFC_TOPOLOGY_LOOP) in lpfc_els_rsp_rps_acc()
6186 if (phba->pport->fc_flag & FC_FABRIC) in lpfc_els_rsp_rps_acc()
6205 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_rps_acc()
6206 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == IOCB_ERROR) in lpfc_els_rsp_rps_acc()
6207 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_rps_acc()
6233 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_rls() local
6242 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC); in lpfc_els_rcv_rls()
6244 lpfc_read_lnk_stat(phba, mbox); in lpfc_els_rcv_rls()
6251 if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) in lpfc_els_rcv_rls()
6259 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_els_rcv_rls()
6296 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_rtv() local
6310 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, in lpfc_els_rcv_rtv()
6328 rtv_rsp->ratov = cpu_to_be32(phba->fc_ratov * 1000); /* report msecs */ in lpfc_els_rcv_rtv()
6329 rtv_rsp->edtov = cpu_to_be32(phba->fc_edtov); in lpfc_els_rcv_rtv()
6330 bf_set(qtov_edtovres, rtv_rsp, phba->fc_edtovResol ? 1 : 0); in lpfc_els_rcv_rtv()
6344 phba->fc_stat.elsXmitACC++; in lpfc_els_rcv_rtv()
6345 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == IOCB_ERROR) in lpfc_els_rcv_rtv()
6346 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rcv_rtv()
6380 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_rps() local
6405 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC); in lpfc_els_rcv_rps()
6407 lpfc_read_lnk_stat(phba, mbox); in lpfc_els_rcv_rps()
6414 if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) in lpfc_els_rcv_rps()
6422 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_els_rcv_rps()
6453 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_rrq() local
6480 bf_set(rrq_oxid, els_rrq, phba->sli4_hba.xri_ids[rrq->xritag]); in lpfc_issue_els_rrq()
6492 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); in lpfc_issue_els_rrq()
6495 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_rrq()
6514 lpfc_send_rrq(struct lpfc_hba *phba, struct lpfc_node_rrq *rrq) in lpfc_send_rrq() argument
6518 if (lpfc_test_rrq_active(phba, ndlp, rrq->xritag)) in lpfc_send_rrq()
6548 struct lpfc_hba *phba = vport->phba; in lpfc_els_rsp_rpl_acc() local
6588 phba->fc_stat.elsXmitACC++; in lpfc_els_rsp_rpl_acc()
6589 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == in lpfc_els_rsp_rpl_acc()
6591 lpfc_els_free_iocb(phba, elsiocb); in lpfc_els_rsp_rpl_acc()
6799 struct lpfc_hba *phba = vport->phba; in lpfc_els_rcv_fan() local
6807 if ((vport == phba->pport) && in lpfc_els_rcv_fan()
6809 if ((memcmp(&phba->fc_fabparam.nodeName, &fp->FnodeName, in lpfc_els_rcv_fan()
6811 (memcmp(&phba->fc_fabparam.portName, &fp->FportName, in lpfc_els_rcv_fan()
6818 if (phba->sli_rev < LPFC_SLI_REV4) in lpfc_els_rcv_fan()
6845 struct lpfc_hba *phba = vport->phba; in lpfc_els_timeout() local
6856 lpfc_worker_wake_up(phba); in lpfc_els_timeout()
6873 struct lpfc_hba *phba = vport->phba; in lpfc_els_timeout_handler() local
6884 timeout = (uint32_t)(phba->fc_ratov << 1); in lpfc_els_timeout_handler()
6886 pring = &phba->sli.ring[LPFC_ELS_RING]; in lpfc_els_timeout_handler()
6887 if ((phba->pport->load_flag & FC_UNLOADING)) in lpfc_els_timeout_handler()
6889 spin_lock_irq(&phba->hbalock); in lpfc_els_timeout_handler()
6890 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_timeout_handler()
6893 if ((phba->pport->load_flag & FC_UNLOADING)) { in lpfc_els_timeout_handler()
6894 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_timeout_handler()
6896 spin_unlock_irq(&phba->hbalock); in lpfc_els_timeout_handler()
6939 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_timeout_handler()
6941 spin_unlock_irq(&phba->hbalock); in lpfc_els_timeout_handler()
6949 spin_lock_irq(&phba->hbalock); in lpfc_els_timeout_handler()
6951 lpfc_sli_issue_abort_iotag(phba, pring, piocb); in lpfc_els_timeout_handler()
6952 spin_unlock_irq(&phba->hbalock); in lpfc_els_timeout_handler()
6955 if (!list_empty(&phba->sli.ring[LPFC_ELS_RING].txcmplq)) in lpfc_els_timeout_handler()
6956 if (!(phba->pport->load_flag & FC_UNLOADING)) in lpfc_els_timeout_handler()
6985 struct lpfc_hba *phba = vport->phba; in lpfc_els_flush_cmd() local
6986 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; in lpfc_els_flush_cmd()
6997 spin_lock_irq(&phba->hbalock); in lpfc_els_flush_cmd()
6998 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_flush_cmd()
7009 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_flush_cmd()
7011 spin_unlock_irq(&phba->hbalock); in lpfc_els_flush_cmd()
7014 spin_lock_irq(&phba->hbalock); in lpfc_els_flush_cmd()
7016 lpfc_sli_issue_abort_iotag(phba, pring, piocb); in lpfc_els_flush_cmd()
7017 spin_unlock_irq(&phba->hbalock); in lpfc_els_flush_cmd()
7024 spin_lock_irq(&phba->hbalock); in lpfc_els_flush_cmd()
7025 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_flush_cmd()
7048 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_els_flush_cmd()
7050 spin_unlock_irq(&phba->hbalock); in lpfc_els_flush_cmd()
7053 lpfc_sli_cancel_iocbs(phba, &abort_list, in lpfc_els_flush_cmd()
7077 lpfc_els_flush_all_cmd(struct lpfc_hba *phba) in lpfc_els_flush_all_cmd() argument
7080 list_for_each_entry(vport, &phba->port_list, listentry) in lpfc_els_flush_all_cmd()
7096 lpfc_send_els_failure_event(struct lpfc_hba *phba, in lpfc_send_els_failure_event() argument
7248 lpfc_els_unsol_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_els_unsol_buffer() argument
7265 if ((phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) == 0) in lpfc_els_unsol_buffer()
7266 lpfc_post_buffer(phba, pring, 1); in lpfc_els_unsol_buffer()
7292 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_els_unsol_buffer()
7319 phba->fc_stat.elsRcvFrame++; in lpfc_els_unsol_buffer()
7360 phba->fc_stat.elsRcvPLOGI++; in lpfc_els_unsol_buffer()
7361 ndlp = lpfc_plogi_confirm_nport(phba, payload, ndlp); in lpfc_els_unsol_buffer()
7362 if (phba->sli_rev == LPFC_SLI_REV4 && in lpfc_els_unsol_buffer()
7363 (phba->pport->fc_flag & FC_PT2PT)) { in lpfc_els_unsol_buffer()
7385 if (!(phba->pport->fc_flag & FC_PT2PT) || in lpfc_els_unsol_buffer()
7386 (phba->pport->fc_flag & FC_PT2PT_PLOGI)) { in lpfc_els_unsol_buffer()
7406 phba->fc_stat.elsRcvFLOGI++; in lpfc_els_unsol_buffer()
7416 phba->fc_stat.elsRcvLOGO++; in lpfc_els_unsol_buffer()
7430 phba->fc_stat.elsRcvPRLO++; in lpfc_els_unsol_buffer()
7440 phba->fc_stat.elsRcvLCB++; in lpfc_els_unsol_buffer()
7444 phba->fc_stat.elsRcvRDP++; in lpfc_els_unsol_buffer()
7448 phba->fc_stat.elsRcvRSCN++; in lpfc_els_unsol_buffer()
7459 phba->fc_stat.elsRcvADISC++; in lpfc_els_unsol_buffer()
7473 phba->fc_stat.elsRcvPDISC++; in lpfc_els_unsol_buffer()
7487 phba->fc_stat.elsRcvFARPR++; in lpfc_els_unsol_buffer()
7495 phba->fc_stat.elsRcvFARP++; in lpfc_els_unsol_buffer()
7503 phba->fc_stat.elsRcvFAN++; in lpfc_els_unsol_buffer()
7511 phba->fc_stat.elsRcvPRLI++; in lpfc_els_unsol_buffer()
7524 phba->fc_stat.elsRcvLIRR++; in lpfc_els_unsol_buffer()
7534 phba->fc_stat.elsRcvRLS++; in lpfc_els_unsol_buffer()
7544 phba->fc_stat.elsRcvRPS++; in lpfc_els_unsol_buffer()
7554 phba->fc_stat.elsRcvRPL++; in lpfc_els_unsol_buffer()
7564 phba->fc_stat.elsRcvRNID++; in lpfc_els_unsol_buffer()
7573 phba->fc_stat.elsRcvRTV++; in lpfc_els_unsol_buffer()
7583 phba->fc_stat.elsRcvRRQ++; in lpfc_els_unsol_buffer()
7593 phba->fc_stat.elsRcvECHO++; in lpfc_els_unsol_buffer()
7641 phba->fc_stat.elsRcvDrop++; in lpfc_els_unsol_buffer()
7657 lpfc_els_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_els_unsol_event() argument
7660 struct lpfc_vport *vport = phba->pport; in lpfc_els_unsol_event()
7671 lpfc_sli_hbqbuf_add_hbqs(phba, LPFC_ELS_HBQ); in lpfc_els_unsol_event()
7675 phba->fc_stat.NoRcvBuf++; in lpfc_els_unsol_event()
7677 if (!(phba->sli3_options & LPFC_SLI3_HBQ_ENABLED)) in lpfc_els_unsol_event()
7678 lpfc_post_buffer(phba, pring, 0); in lpfc_els_unsol_event()
7682 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && in lpfc_els_unsol_event()
7686 vport = phba->pport; in lpfc_els_unsol_event()
7688 vport = lpfc_find_vport_by_vpid(phba, in lpfc_els_unsol_event()
7701 if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { in lpfc_els_unsol_event()
7706 elsiocb->context2 = lpfc_sli_ringpostbuf_get(phba, pring, in lpfc_els_unsol_event()
7710 lpfc_els_unsol_buffer(phba, pring, vport, elsiocb); in lpfc_els_unsol_event()
7716 lpfc_in_buf_free(phba, (struct lpfc_dmabuf *)elsiocb->context2); in lpfc_els_unsol_event()
7721 if ((phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) && in lpfc_els_unsol_event()
7724 lpfc_els_unsol_buffer(phba, pring, vport, elsiocb); in lpfc_els_unsol_event()
7727 lpfc_in_buf_free(phba, elsiocb->context2); in lpfc_els_unsol_event()
7747 lpfc_do_scr_ns_plogi(struct lpfc_hba *phba, struct lpfc_vport *vport) in lpfc_do_scr_ns_plogi() argument
7760 lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY, in lpfc_do_scr_ns_plogi()
7762 phba->fc_ratov); in lpfc_do_scr_ns_plogi()
7764 jiffies + msecs_to_jiffies(1000 * phba->fc_ratov)); in lpfc_do_scr_ns_plogi()
7771 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_do_scr_ns_plogi()
7773 if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { in lpfc_do_scr_ns_plogi()
7786 if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { in lpfc_do_scr_ns_plogi()
7814 ndlp_fdmi = mempool_alloc(phba->nlp_mem_pool, in lpfc_do_scr_ns_plogi()
7848 lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_cmpl_reg_new_vport() argument
7865 if (phba->sli_rev == LPFC_SLI_REV4 && in lpfc_cmpl_reg_new_vport()
7885 lpfc_init_vpi(phba, pmb, vport->vpi); in lpfc_cmpl_reg_new_vport()
7888 rc = lpfc_sli_issue_mbox(phba, pmb, in lpfc_cmpl_reg_new_vport()
7902 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_cmpl_reg_new_vport()
7919 if (vport == phba->pport) { in lpfc_cmpl_reg_new_vport()
7920 if (phba->sli_rev < LPFC_SLI_REV4) in lpfc_cmpl_reg_new_vport()
7928 lpfc_start_fdiscs(phba); in lpfc_cmpl_reg_new_vport()
7929 lpfc_do_scr_ns_plogi(phba, vport); in lpfc_cmpl_reg_new_vport()
7932 lpfc_do_scr_ns_plogi(phba, vport); in lpfc_cmpl_reg_new_vport()
7940 mempool_free(pmb, phba->mbox_mem_pool); in lpfc_cmpl_reg_new_vport()
7954 lpfc_register_new_vport(struct lpfc_hba *phba, struct lpfc_vport *vport, in lpfc_register_new_vport() argument
7960 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_register_new_vport()
7966 if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) in lpfc_register_new_vport()
7972 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_register_new_vport()
8000 lpfc_cancel_all_vport_retry_delay_timer(struct lpfc_hba *phba) in lpfc_cancel_all_vport_retry_delay_timer() argument
8008 link_state = phba->link_state; in lpfc_cancel_all_vport_retry_delay_timer()
8009 lpfc_linkdown(phba); in lpfc_cancel_all_vport_retry_delay_timer()
8010 phba->link_state = link_state; in lpfc_cancel_all_vport_retry_delay_timer()
8012 vports = lpfc_create_vport_work_array(phba); in lpfc_cancel_all_vport_retry_delay_timer()
8015 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { in lpfc_cancel_all_vport_retry_delay_timer()
8021 lpfc_destroy_vport_work_array(phba, vports); in lpfc_cancel_all_vport_retry_delay_timer()
8034 lpfc_retry_pport_discovery(struct lpfc_hba *phba) in lpfc_retry_pport_discovery() argument
8040 lpfc_cancel_all_vport_retry_delay_timer(phba); in lpfc_retry_pport_discovery()
8043 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_retry_pport_discovery()
8047 shost = lpfc_shost_from_vport(phba->pport); in lpfc_retry_pport_discovery()
8053 phba->pport->port_state = LPFC_FLOGI; in lpfc_retry_pport_discovery()
8067 lpfc_fabric_login_reqd(struct lpfc_hba *phba, in lpfc_fabric_login_reqd() argument
8100 lpfc_cmpl_els_fdisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_fdisc() argument
8122 list_for_each_entry(piocb, &phba->fabric_iocb_list, list) { in lpfc_cmpl_els_fdisc()
8132 if (lpfc_fabric_login_reqd(phba, cmdiocb, rspiocb)) { in lpfc_cmpl_els_fdisc()
8133 lpfc_retry_pport_discovery(phba); in lpfc_cmpl_els_fdisc()
8138 if (lpfc_els_retry(phba, cmdiocb, rspiocb)) in lpfc_cmpl_els_fdisc()
8150 if (vport->phba->fc_topology == LPFC_TOPOLOGY_LOOP) in lpfc_cmpl_els_fdisc()
8184 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_cmpl_els_fdisc()
8190 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_cmpl_els_fdisc()
8195 } else if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_cmpl_els_fdisc()
8201 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
8208 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
8210 lpfc_do_scr_ns_plogi(phba, vport); in lpfc_cmpl_els_fdisc()
8219 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_fdisc()
8246 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_fdisc() local
8275 if (phba->sli_rev == LPFC_SLI_REV3) { in lpfc_issue_els_fdisc()
8283 memcpy(pcmd, &vport->phba->pport->fc_sparam, sizeof(struct serv_parm)); in lpfc_issue_els_fdisc()
8304 phba->fc_stat.elsXmitFDISC++; in lpfc_issue_els_fdisc()
8311 rc = lpfc_issue_fabric_iocb(phba, elsiocb); in lpfc_issue_els_fdisc()
8313 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_fdisc()
8338 lpfc_cmpl_els_npiv_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_els_npiv_logo() argument
8352 lpfc_els_free_iocb(phba, cmdiocb); in lpfc_cmpl_els_npiv_logo()
8394 struct lpfc_hba *phba = vport->phba; in lpfc_issue_els_npiv_logo() local
8422 if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == in lpfc_issue_els_npiv_logo()
8427 lpfc_els_free_iocb(phba, elsiocb); in lpfc_issue_els_npiv_logo()
8447 struct lpfc_hba *phba = (struct lpfc_hba *) ptr; in lpfc_fabric_block_timeout() local
8451 spin_lock_irqsave(&phba->pport->work_port_lock, iflags); in lpfc_fabric_block_timeout()
8452 tmo_posted = phba->pport->work_port_events & WORKER_FABRIC_BLOCK_TMO; in lpfc_fabric_block_timeout()
8454 phba->pport->work_port_events |= WORKER_FABRIC_BLOCK_TMO; in lpfc_fabric_block_timeout()
8455 spin_unlock_irqrestore(&phba->pport->work_port_lock, iflags); in lpfc_fabric_block_timeout()
8458 lpfc_worker_wake_up(phba); in lpfc_fabric_block_timeout()
8473 lpfc_resume_fabric_iocbs(struct lpfc_hba *phba) in lpfc_resume_fabric_iocbs() argument
8482 spin_lock_irqsave(&phba->hbalock, iflags); in lpfc_resume_fabric_iocbs()
8484 if (atomic_read(&phba->fabric_iocb_count) == 0) { in lpfc_resume_fabric_iocbs()
8485 list_remove_head(&phba->fabric_iocb_list, iocb, typeof(*iocb), in lpfc_resume_fabric_iocbs()
8489 atomic_inc(&phba->fabric_iocb_count); in lpfc_resume_fabric_iocbs()
8491 spin_unlock_irqrestore(&phba->hbalock, iflags); in lpfc_resume_fabric_iocbs()
8501 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0); in lpfc_resume_fabric_iocbs()
8510 iocb->iocb_cmpl(phba, iocb, iocb); in lpfc_resume_fabric_iocbs()
8512 atomic_dec(&phba->fabric_iocb_count); in lpfc_resume_fabric_iocbs()
8530 lpfc_unblock_fabric_iocbs(struct lpfc_hba *phba) in lpfc_unblock_fabric_iocbs() argument
8532 clear_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags); in lpfc_unblock_fabric_iocbs()
8534 lpfc_resume_fabric_iocbs(phba); in lpfc_unblock_fabric_iocbs()
8548 lpfc_block_fabric_iocbs(struct lpfc_hba *phba) in lpfc_block_fabric_iocbs() argument
8552 blocked = test_and_set_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags); in lpfc_block_fabric_iocbs()
8555 mod_timer(&phba->fabric_block_timer, in lpfc_block_fabric_iocbs()
8575 lpfc_cmpl_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, in lpfc_cmpl_fabric_iocb() argument
8587 lpfc_block_fabric_iocbs(phba); in lpfc_cmpl_fabric_iocb()
8593 lpfc_block_fabric_iocbs(phba); in lpfc_cmpl_fabric_iocb()
8601 lpfc_block_fabric_iocbs(phba); in lpfc_cmpl_fabric_iocb()
8605 if (atomic_read(&phba->fabric_iocb_count) == 0) in lpfc_cmpl_fabric_iocb()
8611 cmdiocb->iocb_cmpl(phba, cmdiocb, rspiocb); in lpfc_cmpl_fabric_iocb()
8613 atomic_dec(&phba->fabric_iocb_count); in lpfc_cmpl_fabric_iocb()
8614 if (!test_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags)) { in lpfc_cmpl_fabric_iocb()
8616 lpfc_resume_fabric_iocbs(phba); in lpfc_cmpl_fabric_iocb()
8645 lpfc_issue_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *iocb) in lpfc_issue_fabric_iocb() argument
8651 if (atomic_read(&phba->fabric_iocb_count) > 1) in lpfc_issue_fabric_iocb()
8654 spin_lock_irqsave(&phba->hbalock, iflags); in lpfc_issue_fabric_iocb()
8655 ready = atomic_read(&phba->fabric_iocb_count) == 0 && in lpfc_issue_fabric_iocb()
8656 !test_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags); in lpfc_issue_fabric_iocb()
8660 atomic_inc(&phba->fabric_iocb_count); in lpfc_issue_fabric_iocb()
8661 spin_unlock_irqrestore(&phba->hbalock, iflags); in lpfc_issue_fabric_iocb()
8671 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0); in lpfc_issue_fabric_iocb()
8677 atomic_dec(&phba->fabric_iocb_count); in lpfc_issue_fabric_iocb()
8680 spin_lock_irqsave(&phba->hbalock, iflags); in lpfc_issue_fabric_iocb()
8681 list_add_tail(&iocb->list, &phba->fabric_iocb_list); in lpfc_issue_fabric_iocb()
8682 spin_unlock_irqrestore(&phba->hbalock, iflags); in lpfc_issue_fabric_iocb()
8702 struct lpfc_hba *phba = vport->phba; in lpfc_fabric_abort_vport() local
8705 spin_lock_irq(&phba->hbalock); in lpfc_fabric_abort_vport()
8706 list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list, in lpfc_fabric_abort_vport()
8714 spin_unlock_irq(&phba->hbalock); in lpfc_fabric_abort_vport()
8717 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, in lpfc_fabric_abort_vport()
8735 struct lpfc_hba *phba = ndlp->phba; in lpfc_fabric_abort_nport() local
8737 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; in lpfc_fabric_abort_nport()
8739 spin_lock_irq(&phba->hbalock); in lpfc_fabric_abort_nport()
8740 list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list, in lpfc_fabric_abort_nport()
8742 if ((lpfc_check_sli_ndlp(phba, pring, piocb, ndlp))) { in lpfc_fabric_abort_nport()
8747 spin_unlock_irq(&phba->hbalock); in lpfc_fabric_abort_nport()
8750 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, in lpfc_fabric_abort_nport()
8765 void lpfc_fabric_abort_hba(struct lpfc_hba *phba) in lpfc_fabric_abort_hba() argument
8769 spin_lock_irq(&phba->hbalock); in lpfc_fabric_abort_hba()
8770 list_splice_init(&phba->fabric_iocb_list, &completions); in lpfc_fabric_abort_hba()
8771 spin_unlock_irq(&phba->hbalock); in lpfc_fabric_abort_hba()
8774 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, in lpfc_fabric_abort_hba()
8788 struct lpfc_hba *phba = vport->phba; in lpfc_sli4_vport_delete_els_xri_aborted() local
8792 spin_lock_irqsave(&phba->hbalock, iflag); in lpfc_sli4_vport_delete_els_xri_aborted()
8793 spin_lock(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_sli4_vport_delete_els_xri_aborted()
8795 &phba->sli4_hba.lpfc_abts_els_sgl_list, list) { in lpfc_sli4_vport_delete_els_xri_aborted()
8799 spin_unlock(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_sli4_vport_delete_els_xri_aborted()
8800 spin_unlock_irqrestore(&phba->hbalock, iflag); in lpfc_sli4_vport_delete_els_xri_aborted()
8813 lpfc_sli4_els_xri_aborted(struct lpfc_hba *phba, in lpfc_sli4_els_xri_aborted() argument
8823 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; in lpfc_sli4_els_xri_aborted()
8825 spin_lock_irqsave(&phba->hbalock, iflag); in lpfc_sli4_els_xri_aborted()
8826 spin_lock(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_sli4_els_xri_aborted()
8828 &phba->sli4_hba.lpfc_abts_els_sgl_list, list) { in lpfc_sli4_els_xri_aborted()
8835 &phba->sli4_hba.lpfc_sgl_list); in lpfc_sli4_els_xri_aborted()
8838 spin_unlock(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_sli4_els_xri_aborted()
8839 spin_unlock_irqrestore(&phba->hbalock, iflag); in lpfc_sli4_els_xri_aborted()
8840 lpfc_set_rrq_active(phba, ndlp, in lpfc_sli4_els_xri_aborted()
8846 lpfc_worker_wake_up(phba); in lpfc_sli4_els_xri_aborted()
8850 spin_unlock(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_sli4_els_xri_aborted()
8851 lxri = lpfc_sli4_xri_inrange(phba, xri); in lpfc_sli4_els_xri_aborted()
8853 spin_unlock_irqrestore(&phba->hbalock, iflag); in lpfc_sli4_els_xri_aborted()
8857 sglq_entry = __lpfc_get_active_sglq(phba, lxri); in lpfc_sli4_els_xri_aborted()
8860 spin_unlock_irqrestore(&phba->hbalock, iflag); in lpfc_sli4_els_xri_aborted()
8865 spin_unlock_irqrestore(&phba->hbalock, iflag); in lpfc_sli4_els_xri_aborted()
8883 struct lpfc_hba *phba; in lpfc_sli_abts_recover_port() local
8887 phba = vport->phba; in lpfc_sli_abts_recover_port()
8889 lpfc_printf_log(phba, KERN_INFO, in lpfc_sli_abts_recover_port()
8894 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, in lpfc_sli_abts_recover_port()