Lines Matching refs:pring
758 lpfc_cmd_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_cmd_iocb() argument
760 return (IOCB_t *) (((char *) pring->sli.sli3.cmdringaddr) + in lpfc_cmd_iocb()
761 pring->sli.sli3.cmdidx * phba->iocb_cmd_size); in lpfc_cmd_iocb()
775 lpfc_resp_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_resp_iocb() argument
777 return (IOCB_t *) (((char *) pring->sli.sli3.rspringaddr) + in lpfc_resp_iocb()
778 pring->sli.sli3.rspidx * phba->iocb_rsp_size); in lpfc_resp_iocb()
1135 struct lpfc_sli_ring *pring = NULL; in __lpfc_sli_get_els_sglq() local
1139 pring = phba->sli4_hba.nvmels_wq->pring; in __lpfc_sli_get_els_sglq()
1141 pring = lpfc_phba_elsring(phba); in __lpfc_sli_get_els_sglq()
1143 lockdep_assert_held(&pring->ring_lock); in __lpfc_sli_get_els_sglq()
1266 struct lpfc_sli_ring *pring; in __lpfc_sli_release_iocbq_s4() local
1287 pring = phba->sli4_hba.els_wq->pring; in __lpfc_sli_release_iocbq_s4()
1307 if (!list_empty(&pring->txq)) in __lpfc_sli_release_iocbq_s4()
1596 lpfc_sli_ringtxcmpl_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ringtxcmpl_put() argument
1600 lockdep_assert_held(&pring->ring_lock); in lpfc_sli_ringtxcmpl_put()
1606 list_add_tail(&piocb->list, &pring->txcmplq); in lpfc_sli_ringtxcmpl_put()
1608 pring->txcmplq_cnt++; in lpfc_sli_ringtxcmpl_put()
1610 if ((unlikely(pring->ringno == LPFC_ELS_RING)) && in lpfc_sli_ringtxcmpl_put()
1634 lpfc_sli_ringtx_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_ringtx_get() argument
1640 list_remove_head((&pring->txq), cmd_iocb, struct lpfc_iocbq, list); in lpfc_sli_ringtx_get()
1659 lpfc_sli_next_iocb_slot (struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_next_iocb_slot() argument
1661 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_next_iocb_slot()
1662 uint32_t max_cmd_idx = pring->sli.sli3.numCiocb; in lpfc_sli_next_iocb_slot()
1666 if ((pring->sli.sli3.next_cmdidx == pring->sli.sli3.cmdidx) && in lpfc_sli_next_iocb_slot()
1667 (++pring->sli.sli3.next_cmdidx >= max_cmd_idx)) in lpfc_sli_next_iocb_slot()
1668 pring->sli.sli3.next_cmdidx = 0; in lpfc_sli_next_iocb_slot()
1670 if (unlikely(pring->sli.sli3.local_getidx == in lpfc_sli_next_iocb_slot()
1671 pring->sli.sli3.next_cmdidx)) { in lpfc_sli_next_iocb_slot()
1673 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); in lpfc_sli_next_iocb_slot()
1675 if (unlikely(pring->sli.sli3.local_getidx >= max_cmd_idx)) { in lpfc_sli_next_iocb_slot()
1679 pring->ringno, in lpfc_sli_next_iocb_slot()
1680 pring->sli.sli3.local_getidx, in lpfc_sli_next_iocb_slot()
1696 if (pring->sli.sli3.local_getidx == pring->sli.sli3.next_cmdidx) in lpfc_sli_next_iocb_slot()
1700 return lpfc_cmd_iocb(phba, pring); in lpfc_sli_next_iocb_slot()
1794 lpfc_sli_submit_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_submit_iocb() argument
1803 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_submit_iocb()
1816 pring->stats.iocb_cmd++; in lpfc_sli_submit_iocb()
1824 lpfc_sli_ringtxcmpl_put(phba, pring, nextiocb); in lpfc_sli_submit_iocb()
1832 pring->sli.sli3.cmdidx = pring->sli.sli3.next_cmdidx; in lpfc_sli_submit_iocb()
1833 writel(pring->sli.sli3.cmdidx, &phba->host_gp[pring->ringno].cmdPutInx); in lpfc_sli_submit_iocb()
1849 lpfc_sli_update_full_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_update_full_ring() argument
1851 int ringno = pring->ringno; in lpfc_sli_update_full_ring()
1853 pring->flag |= LPFC_CALL_RING_AVAILABLE; in lpfc_sli_update_full_ring()
1864 pring->stats.iocb_cmd_full++; in lpfc_sli_update_full_ring()
1877 lpfc_sli_update_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_update_ring() argument
1879 int ringno = pring->ringno; in lpfc_sli_update_ring()
1901 lpfc_sli_resume_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_resume_iocb() argument
1917 (!list_empty(&pring->txq)) && in lpfc_sli_resume_iocb()
1918 (pring->ringno != LPFC_FCP_RING || in lpfc_sli_resume_iocb()
1921 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && in lpfc_sli_resume_iocb()
1922 (nextiocb = lpfc_sli_ringtx_get(phba, pring))) in lpfc_sli_resume_iocb()
1923 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); in lpfc_sli_resume_iocb()
1926 lpfc_sli_update_ring(phba, pring); in lpfc_sli_resume_iocb()
1928 lpfc_sli_update_full_ring(phba, pring); in lpfc_sli_resume_iocb()
2776 struct lpfc_sli_ring *pring, in lpfc_sli_get_buff() argument
2782 return lpfc_sli_ring_taggedbuf_get(phba, pring, tag); in lpfc_sli_get_buff()
2919 lpfc_complete_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_complete_unsol_iocb() argument
2934 if (pring->prt[0].profile) { in lpfc_complete_unsol_iocb()
2935 if (pring->prt[0].lpfc_sli_rcv_unsol_event) in lpfc_complete_unsol_iocb()
2936 (pring->prt[0].lpfc_sli_rcv_unsol_event) (phba, pring, in lpfc_complete_unsol_iocb()
2942 for (i = 0; i < pring->num_mask; i++) { in lpfc_complete_unsol_iocb()
2943 if ((pring->prt[i].rctl == fch_r_ctl) && in lpfc_complete_unsol_iocb()
2944 (pring->prt[i].type == fch_type)) { in lpfc_complete_unsol_iocb()
2945 if (pring->prt[i].lpfc_sli_rcv_unsol_event) in lpfc_complete_unsol_iocb()
2946 (pring->prt[i].lpfc_sli_rcv_unsol_event) in lpfc_complete_unsol_iocb()
2947 (phba, pring, saveq); in lpfc_complete_unsol_iocb()
2969 lpfc_sli_process_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_process_unsol_iocb() argument
2981 if (pring->lpfc_sli_rcv_async_status) in lpfc_sli_process_unsol_iocb()
2982 pring->lpfc_sli_rcv_async_status(phba, pring, saveq); in lpfc_sli_process_unsol_iocb()
2990 pring->ringno, in lpfc_sli_process_unsol_iocb()
2998 dmzbuf = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
3004 dmzbuf = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
3010 dmzbuf = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
3020 saveq->context2 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
3028 pring->ringno, in lpfc_sli_process_unsol_iocb()
3032 saveq->context3 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
3040 pring->ringno, in lpfc_sli_process_unsol_iocb()
3046 iocbq->context2 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
3054 ". tag 0x%x\n", pring->ringno, in lpfc_sli_process_unsol_iocb()
3058 iocbq->context3 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
3067 pring->ringno, in lpfc_sli_process_unsol_iocb()
3078 list_for_each_entry(iocbq, &pring->iocb_continue_saveq, clist) { in lpfc_sli_process_unsol_iocb()
3088 &pring->iocb_continue_saveq); in lpfc_sli_process_unsol_iocb()
3107 if ((Rctl == 0) && (pring->ringno == LPFC_ELS_RING) && in lpfc_sli_process_unsol_iocb()
3117 if (!lpfc_complete_unsol_iocb(phba, pring, saveq, Rctl, Type)) in lpfc_sli_process_unsol_iocb()
3121 pring->ringno, Rctl, Type); in lpfc_sli_process_unsol_iocb()
3141 struct lpfc_sli_ring *pring, in lpfc_sli_iocbq_lookup() argument
3150 temp_lock = &pring->ring_lock; in lpfc_sli_iocbq_lookup()
3163 pring->txcmplq_cnt--; in lpfc_sli_iocbq_lookup()
3192 struct lpfc_sli_ring *pring, uint16_t iotag) in lpfc_sli_iocbq_lookup_by_tag() argument
3199 temp_lock = &pring->ring_lock; in lpfc_sli_iocbq_lookup_by_tag()
3210 pring->txcmplq_cnt--; in lpfc_sli_iocbq_lookup_by_tag()
3243 lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_process_sol_iocb() argument
3250 cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, saveq); in lpfc_sli_process_sol_iocb()
3258 (pring->ringno == LPFC_ELS_RING) && in lpfc_sli_process_sol_iocb()
3268 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_process_sol_iocb()
3354 if (pring->ringno != LPFC_ELS_RING) { in lpfc_sli_process_sol_iocb()
3363 pring->ringno, in lpfc_sli_process_sol_iocb()
3386 lpfc_sli_rsp_pointers_error(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_rsp_pointers_error() argument
3388 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_rsp_pointers_error()
3396 pring->ringno, le32_to_cpu(pgp->rspPutInx), in lpfc_sli_rsp_pointers_error()
3397 pring->sli.sli3.numRiocb); in lpfc_sli_rsp_pointers_error()
3480 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_fast_ring_event() argument
3482 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_handle_fast_ring_event()
3495 pring->stats.iocb_event++; in lpfc_sli_handle_fast_ring_event()
3501 portRspMax = pring->sli.sli3.numRiocb; in lpfc_sli_handle_fast_ring_event()
3504 lpfc_sli_rsp_pointers_error(phba, pring); in lpfc_sli_handle_fast_ring_event()
3515 while (pring->sli.sli3.rspidx != portRspPut) { in lpfc_sli_handle_fast_ring_event()
3521 entry = lpfc_resp_iocb(phba, pring); in lpfc_sli_handle_fast_ring_event()
3524 if (++pring->sli.sli3.rspidx >= portRspMax) in lpfc_sli_handle_fast_ring_event()
3525 pring->sli.sli3.rspidx = 0; in lpfc_sli_handle_fast_ring_event()
3534 pring->stats.iocb_rsp++; in lpfc_sli_handle_fast_ring_event()
3554 pring->ringno, in lpfc_sli_handle_fast_ring_event()
3582 cmdiocbq = lpfc_sli_iocbq_lookup(phba, pring, in lpfc_sli_handle_fast_ring_event()
3598 lpfc_sli_process_unsol_iocb(phba, pring, &rspiocbq); in lpfc_sli_handle_fast_ring_event()
3629 writel(pring->sli.sli3.rspidx, in lpfc_sli_handle_fast_ring_event()
3630 &phba->host_gp[pring->ringno].rspGetInx); in lpfc_sli_handle_fast_ring_event()
3632 if (pring->sli.sli3.rspidx == portRspPut) in lpfc_sli_handle_fast_ring_event()
3637 pring->stats.iocb_rsp_full++; in lpfc_sli_handle_fast_ring_event()
3638 status = ((CA_R0ATT | CA_R0RE_RSP) << (pring->ringno * 4)); in lpfc_sli_handle_fast_ring_event()
3642 if ((mask & HA_R0CE_RSP) && (pring->flag & LPFC_CALL_RING_AVAILABLE)) { in lpfc_sli_handle_fast_ring_event()
3643 pring->flag &= ~LPFC_CALL_RING_AVAILABLE; in lpfc_sli_handle_fast_ring_event()
3644 pring->stats.iocb_cmd_empty++; in lpfc_sli_handle_fast_ring_event()
3647 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); in lpfc_sli_handle_fast_ring_event()
3648 lpfc_sli_resume_iocb(phba, pring); in lpfc_sli_handle_fast_ring_event()
3650 if ((pring->lpfc_sli_cmd_available)) in lpfc_sli_handle_fast_ring_event()
3651 (pring->lpfc_sli_cmd_available) (phba, pring); in lpfc_sli_handle_fast_ring_event()
3679 lpfc_sli_sp_handle_rspiocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_sp_handle_rspiocb() argument
3694 list_add_tail(&rspiocbp->list, &(pring->iocb_continueq)); in lpfc_sli_sp_handle_rspiocb()
3695 pring->iocb_continueq_cnt++; in lpfc_sli_sp_handle_rspiocb()
3705 saveq = list_get_first(&pring->iocb_continueq, in lpfc_sli_sp_handle_rspiocb()
3708 list_del_init(&pring->iocb_continueq); in lpfc_sli_sp_handle_rspiocb()
3709 pring->iocb_continueq_cnt = 0; in lpfc_sli_sp_handle_rspiocb()
3711 pring->stats.iocb_rsp++; in lpfc_sli_sp_handle_rspiocb()
3734 pring->ringno, in lpfc_sli_sp_handle_rspiocb()
3764 rc = lpfc_sli_process_sol_iocb(phba, pring, saveq); in lpfc_sli_sp_handle_rspiocb()
3770 rc = lpfc_sli_process_unsol_iocb(phba, pring, saveq); in lpfc_sli_sp_handle_rspiocb()
3780 cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, in lpfc_sli_sp_handle_rspiocb()
3847 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_slow_ring_event() argument
3849 phba->lpfc_sli_handle_slow_ring_event(phba, pring, mask); in lpfc_sli_handle_slow_ring_event()
3865 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_slow_ring_event_s3() argument
3875 pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_handle_slow_ring_event_s3()
3877 pring->stats.iocb_event++; in lpfc_sli_handle_slow_ring_event_s3()
3883 portRspMax = pring->sli.sli3.numRiocb; in lpfc_sli_handle_slow_ring_event_s3()
3893 pring->ringno, portRspPut, portRspMax); in lpfc_sli_handle_slow_ring_event_s3()
3905 while (pring->sli.sli3.rspidx != portRspPut) { in lpfc_sli_handle_slow_ring_event_s3()
3919 entry = lpfc_resp_iocb(phba, pring); in lpfc_sli_handle_slow_ring_event_s3()
3933 if (++pring->sli.sli3.rspidx >= portRspMax) in lpfc_sli_handle_slow_ring_event_s3()
3934 pring->sli.sli3.rspidx = 0; in lpfc_sli_handle_slow_ring_event_s3()
3936 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_handle_slow_ring_event_s3()
3944 writel(pring->sli.sli3.rspidx, in lpfc_sli_handle_slow_ring_event_s3()
3945 &phba->host_gp[pring->ringno].rspGetInx); in lpfc_sli_handle_slow_ring_event_s3()
3949 rspiocbp = lpfc_sli_sp_handle_rspiocb(phba, pring, rspiocbp); in lpfc_sli_handle_slow_ring_event_s3()
3957 if (pring->sli.sli3.rspidx == portRspPut) { in lpfc_sli_handle_slow_ring_event_s3()
3964 pring->stats.iocb_rsp_full++; in lpfc_sli_handle_slow_ring_event_s3()
3966 status = ((CA_R0ATT | CA_R0RE_RSP) << (pring->ringno * 4)); in lpfc_sli_handle_slow_ring_event_s3()
3970 if ((mask & HA_R0CE_RSP) && (pring->flag & LPFC_CALL_RING_AVAILABLE)) { in lpfc_sli_handle_slow_ring_event_s3()
3971 pring->flag &= ~LPFC_CALL_RING_AVAILABLE; in lpfc_sli_handle_slow_ring_event_s3()
3972 pring->stats.iocb_cmd_empty++; in lpfc_sli_handle_slow_ring_event_s3()
3975 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); in lpfc_sli_handle_slow_ring_event_s3()
3976 lpfc_sli_resume_iocb(phba, pring); in lpfc_sli_handle_slow_ring_event_s3()
3978 if ((pring->lpfc_sli_cmd_available)) in lpfc_sli_handle_slow_ring_event_s3()
3979 (pring->lpfc_sli_cmd_available) (phba, pring); in lpfc_sli_handle_slow_ring_event_s3()
4001 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_slow_ring_event_s4() argument
4027 lpfc_sli_sp_handle_rspiocb(phba, pring, in lpfc_sli_handle_slow_ring_event_s4()
4059 lpfc_sli_abort_iocb_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_abort_iocb_ring() argument
4064 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_abort_iocb_ring()
4072 spin_lock_irq(&pring->ring_lock); in lpfc_sli_abort_iocb_ring()
4073 list_splice_init(&pring->txq, &completions); in lpfc_sli_abort_iocb_ring()
4074 pring->txq_cnt = 0; in lpfc_sli_abort_iocb_ring()
4075 spin_unlock_irq(&pring->ring_lock); in lpfc_sli_abort_iocb_ring()
4079 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) in lpfc_sli_abort_iocb_ring()
4080 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_abort_iocb_ring()
4084 list_splice_init(&pring->txq, &completions); in lpfc_sli_abort_iocb_ring()
4085 pring->txq_cnt = 0; in lpfc_sli_abort_iocb_ring()
4088 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) in lpfc_sli_abort_iocb_ring()
4089 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_abort_iocb_ring()
4111 struct lpfc_sli_ring *pring; in lpfc_sli_abort_fcp_rings() local
4117 pring = phba->sli4_hba.hdwq[i].io_wq->pring; in lpfc_sli_abort_fcp_rings()
4118 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_abort_fcp_rings()
4121 pring = &psli->sli3_ring[LPFC_FCP_RING]; in lpfc_sli_abort_fcp_rings()
4122 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_abort_fcp_rings()
4142 struct lpfc_sli_ring *pring; in lpfc_sli_flush_io_rings() local
4159 pring = phba->sli4_hba.hdwq[i].io_wq->pring; in lpfc_sli_flush_io_rings()
4161 spin_lock_irq(&pring->ring_lock); in lpfc_sli_flush_io_rings()
4163 list_splice_init(&pring->txq, &txq); in lpfc_sli_flush_io_rings()
4165 &pring->txcmplq, list) in lpfc_sli_flush_io_rings()
4168 list_splice_init(&pring->txcmplq, &txcmplq); in lpfc_sli_flush_io_rings()
4169 pring->txq_cnt = 0; in lpfc_sli_flush_io_rings()
4170 pring->txcmplq_cnt = 0; in lpfc_sli_flush_io_rings()
4171 spin_unlock_irq(&pring->ring_lock); in lpfc_sli_flush_io_rings()
4183 pring = &psli->sli3_ring[LPFC_FCP_RING]; in lpfc_sli_flush_io_rings()
4187 list_splice_init(&pring->txq, &txq); in lpfc_sli_flush_io_rings()
4189 &pring->txcmplq, list) in lpfc_sli_flush_io_rings()
4192 list_splice_init(&pring->txcmplq, &txcmplq); in lpfc_sli_flush_io_rings()
4193 pring->txq_cnt = 0; in lpfc_sli_flush_io_rings()
4194 pring->txcmplq_cnt = 0; in lpfc_sli_flush_io_rings()
4543 struct lpfc_sli_ring *pring; in lpfc_sli_brdreset() local
4585 pring = &psli->sli3_ring[i]; in lpfc_sli_brdreset()
4586 pring->flag = 0; in lpfc_sli_brdreset()
4587 pring->sli.sli3.rspidx = 0; in lpfc_sli_brdreset()
4588 pring->sli.sli3.next_cmdidx = 0; in lpfc_sli_brdreset()
4589 pring->sli.sli3.local_getidx = 0; in lpfc_sli_brdreset()
4590 pring->sli.sli3.cmdidx = 0; in lpfc_sli_brdreset()
4591 pring->missbufcnt = 0; in lpfc_sli_brdreset()
9217 __lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in __lpfc_sli_ringtx_put() argument
9221 lockdep_assert_held(&pring->ring_lock); in __lpfc_sli_ringtx_put()
9225 list_add_tail(&piocb->list, &pring->txq); in __lpfc_sli_ringtx_put()
9246 lpfc_sli_next_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_next_iocb() argument
9253 nextiocb = lpfc_sli_ringtx_get(phba, pring); in lpfc_sli_next_iocb()
9290 struct lpfc_sli_ring *pring = &phba->sli.sli3_ring[ring_number]; in __lpfc_sli_issue_iocb_s3() local
9323 if (unlikely(pring->flag & LPFC_STOP_IOCB_EVENT)) in __lpfc_sli_issue_iocb_s3()
9363 } else if (unlikely(pring->ringno == LPFC_FCP_RING && in __lpfc_sli_issue_iocb_s3()
9368 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && in __lpfc_sli_issue_iocb_s3()
9369 (nextiocb = lpfc_sli_next_iocb(phba, pring, &piocb))) in __lpfc_sli_issue_iocb_s3()
9370 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); in __lpfc_sli_issue_iocb_s3()
9373 lpfc_sli_update_ring(phba, pring); in __lpfc_sli_issue_iocb_s3()
9375 lpfc_sli_update_full_ring(phba, pring); in __lpfc_sli_issue_iocb_s3()
9383 pring->stats.iocb_cmd_delay++; in __lpfc_sli_issue_iocb_s3()
9388 __lpfc_sli_ringtx_put(phba, pring, piocb); in __lpfc_sli_issue_iocb_s3()
10125 struct lpfc_sli_ring *pring; in __lpfc_sli_issue_iocb_s4() local
10136 pring = wq->pring; in __lpfc_sli_issue_iocb_s4()
10142 lockdep_assert_held(&pring->ring_lock); in __lpfc_sli_issue_iocb_s4()
10149 if (!list_empty(&pring->txq)) { in __lpfc_sli_issue_iocb_s4()
10152 pring, piocb); in __lpfc_sli_issue_iocb_s4()
10162 pring, in __lpfc_sli_issue_iocb_s4()
10195 lpfc_sli_ringtxcmpl_put(phba, pring, piocb); in __lpfc_sli_issue_iocb_s4()
10277 return phba->sli4_hba.hdwq[piocb->hba_wqidx].io_wq->pring; in lpfc_sli4_calc_ring()
10282 return phba->sli4_hba.els_wq->pring; in lpfc_sli4_calc_ring()
10303 struct lpfc_sli_ring *pring; in lpfc_sli_issue_iocb() local
10311 pring = lpfc_sli4_calc_ring(phba, piocb); in lpfc_sli_issue_iocb()
10312 if (unlikely(pring == NULL)) in lpfc_sli_issue_iocb()
10315 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli_issue_iocb()
10317 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli_issue_iocb()
10344 struct lpfc_sli_ring *pring; in lpfc_extra_ring_setup() local
10351 pring = &psli->sli3_ring[LPFC_FCP_RING]; in lpfc_extra_ring_setup()
10352 pring->sli.sli3.numCiocb -= SLI2_IOCB_CMD_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
10353 pring->sli.sli3.numRiocb -= SLI2_IOCB_RSP_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
10354 pring->sli.sli3.numCiocb -= SLI2_IOCB_CMD_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
10355 pring->sli.sli3.numRiocb -= SLI2_IOCB_RSP_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
10358 pring = &psli->sli3_ring[LPFC_EXTRA_RING]; in lpfc_extra_ring_setup()
10360 pring->sli.sli3.numCiocb += SLI2_IOCB_CMD_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
10361 pring->sli.sli3.numRiocb += SLI2_IOCB_RSP_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
10362 pring->sli.sli3.numCiocb += SLI2_IOCB_CMD_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
10363 pring->sli.sli3.numRiocb += SLI2_IOCB_RSP_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
10366 pring->iotag_max = 4096; in lpfc_extra_ring_setup()
10367 pring->num_mask = 1; in lpfc_extra_ring_setup()
10368 pring->prt[0].profile = 0; /* Mask 0 */ in lpfc_extra_ring_setup()
10369 pring->prt[0].rctl = phba->cfg_multi_ring_rctl; in lpfc_extra_ring_setup()
10370 pring->prt[0].type = phba->cfg_multi_ring_type; in lpfc_extra_ring_setup()
10371 pring->prt[0].lpfc_sli_rcv_unsol_event = NULL; in lpfc_extra_ring_setup()
10507 struct lpfc_sli_ring * pring, struct lpfc_iocbq * iocbq) in lpfc_sli_async_event_handler() argument
10555 pring->ringno, icmd->un.asyncstat.evt_code, in lpfc_sli_async_event_handler()
10580 struct lpfc_sli_ring *pring; in lpfc_sli4_setup() local
10582 pring = phba->sli4_hba.els_wq->pring; in lpfc_sli4_setup()
10583 pring->num_mask = LPFC_MAX_RING_MASK; in lpfc_sli4_setup()
10584 pring->prt[0].profile = 0; /* Mask 0 */ in lpfc_sli4_setup()
10585 pring->prt[0].rctl = FC_RCTL_ELS_REQ; in lpfc_sli4_setup()
10586 pring->prt[0].type = FC_TYPE_ELS; in lpfc_sli4_setup()
10587 pring->prt[0].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
10589 pring->prt[1].profile = 0; /* Mask 1 */ in lpfc_sli4_setup()
10590 pring->prt[1].rctl = FC_RCTL_ELS_REP; in lpfc_sli4_setup()
10591 pring->prt[1].type = FC_TYPE_ELS; in lpfc_sli4_setup()
10592 pring->prt[1].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
10594 pring->prt[2].profile = 0; /* Mask 2 */ in lpfc_sli4_setup()
10596 pring->prt[2].rctl = FC_RCTL_DD_UNSOL_CTL; in lpfc_sli4_setup()
10598 pring->prt[2].type = FC_TYPE_CT; in lpfc_sli4_setup()
10599 pring->prt[2].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
10601 pring->prt[3].profile = 0; /* Mask 3 */ in lpfc_sli4_setup()
10603 pring->prt[3].rctl = FC_RCTL_DD_SOL_CTL; in lpfc_sli4_setup()
10605 pring->prt[3].type = FC_TYPE_CT; in lpfc_sli4_setup()
10606 pring->prt[3].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
10627 struct lpfc_sli_ring *pring; in lpfc_sli_setup() local
10637 pring = &psli->sli3_ring[i]; in lpfc_sli_setup()
10641 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R0_ENTRIES; in lpfc_sli_setup()
10642 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R0_ENTRIES; in lpfc_sli_setup()
10643 pring->sli.sli3.numCiocb += in lpfc_sli_setup()
10645 pring->sli.sli3.numRiocb += in lpfc_sli_setup()
10647 pring->sli.sli3.numCiocb += in lpfc_sli_setup()
10649 pring->sli.sli3.numRiocb += in lpfc_sli_setup()
10651 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10654 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10657 pring->iotag_ctr = 0; in lpfc_sli_setup()
10658 pring->iotag_max = in lpfc_sli_setup()
10660 pring->fast_iotag = pring->iotag_max; in lpfc_sli_setup()
10661 pring->num_mask = 0; in lpfc_sli_setup()
10665 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R1_ENTRIES; in lpfc_sli_setup()
10666 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R1_ENTRIES; in lpfc_sli_setup()
10667 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10670 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10673 pring->iotag_max = phba->cfg_hba_queue_depth; in lpfc_sli_setup()
10674 pring->num_mask = 0; in lpfc_sli_setup()
10678 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R2_ENTRIES; in lpfc_sli_setup()
10679 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R2_ENTRIES; in lpfc_sli_setup()
10680 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10683 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10686 pring->fast_iotag = 0; in lpfc_sli_setup()
10687 pring->iotag_ctr = 0; in lpfc_sli_setup()
10688 pring->iotag_max = 4096; in lpfc_sli_setup()
10689 pring->lpfc_sli_rcv_async_status = in lpfc_sli_setup()
10691 pring->num_mask = LPFC_MAX_RING_MASK; in lpfc_sli_setup()
10692 pring->prt[0].profile = 0; /* Mask 0 */ in lpfc_sli_setup()
10693 pring->prt[0].rctl = FC_RCTL_ELS_REQ; in lpfc_sli_setup()
10694 pring->prt[0].type = FC_TYPE_ELS; in lpfc_sli_setup()
10695 pring->prt[0].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10697 pring->prt[1].profile = 0; /* Mask 1 */ in lpfc_sli_setup()
10698 pring->prt[1].rctl = FC_RCTL_ELS_REP; in lpfc_sli_setup()
10699 pring->prt[1].type = FC_TYPE_ELS; in lpfc_sli_setup()
10700 pring->prt[1].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10702 pring->prt[2].profile = 0; /* Mask 2 */ in lpfc_sli_setup()
10704 pring->prt[2].rctl = FC_RCTL_DD_UNSOL_CTL; in lpfc_sli_setup()
10706 pring->prt[2].type = FC_TYPE_CT; in lpfc_sli_setup()
10707 pring->prt[2].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10709 pring->prt[3].profile = 0; /* Mask 3 */ in lpfc_sli_setup()
10711 pring->prt[3].rctl = FC_RCTL_DD_SOL_CTL; in lpfc_sli_setup()
10713 pring->prt[3].type = FC_TYPE_CT; in lpfc_sli_setup()
10714 pring->prt[3].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10718 totiocbsize += (pring->sli.sli3.numCiocb * in lpfc_sli_setup()
10719 pring->sli.sli3.sizeCiocb) + in lpfc_sli_setup()
10720 (pring->sli.sli3.numRiocb * pring->sli.sli3.sizeRiocb); in lpfc_sli_setup()
10750 struct lpfc_sli_ring *pring; in lpfc_sli4_queue_init() local
10759 pring = phba->sli4_hba.hdwq[i].io_wq->pring; in lpfc_sli4_queue_init()
10760 pring->flag = 0; in lpfc_sli4_queue_init()
10761 pring->ringno = LPFC_FCP_RING; in lpfc_sli4_queue_init()
10762 pring->txcmplq_cnt = 0; in lpfc_sli4_queue_init()
10763 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10764 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10765 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10766 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10768 pring = phba->sli4_hba.els_wq->pring; in lpfc_sli4_queue_init()
10769 pring->flag = 0; in lpfc_sli4_queue_init()
10770 pring->ringno = LPFC_ELS_RING; in lpfc_sli4_queue_init()
10771 pring->txcmplq_cnt = 0; in lpfc_sli4_queue_init()
10772 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10773 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10774 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10775 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10778 pring = phba->sli4_hba.nvmels_wq->pring; in lpfc_sli4_queue_init()
10779 pring->flag = 0; in lpfc_sli4_queue_init()
10780 pring->ringno = LPFC_ELS_RING; in lpfc_sli4_queue_init()
10781 pring->txcmplq_cnt = 0; in lpfc_sli4_queue_init()
10782 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10783 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10784 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10785 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10806 struct lpfc_sli_ring *pring; in lpfc_sli_queue_init() local
10815 pring = &psli->sli3_ring[i]; in lpfc_sli_queue_init()
10816 pring->ringno = i; in lpfc_sli_queue_init()
10817 pring->sli.sli3.next_cmdidx = 0; in lpfc_sli_queue_init()
10818 pring->sli.sli3.local_getidx = 0; in lpfc_sli_queue_init()
10819 pring->sli.sli3.cmdidx = 0; in lpfc_sli_queue_init()
10820 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli_queue_init()
10821 INIT_LIST_HEAD(&pring->iocb_continue_saveq); in lpfc_sli_queue_init()
10822 INIT_LIST_HEAD(&pring->postbufq); in lpfc_sli_queue_init()
10823 pring->flag = 0; in lpfc_sli_queue_init()
10824 INIT_LIST_HEAD(&pring->txq); in lpfc_sli_queue_init()
10825 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli_queue_init()
10826 spin_lock_init(&pring->ring_lock); in lpfc_sli_queue_init()
10908 struct lpfc_sli_ring *pring; in lpfc_sli_host_down() local
10925 pring = &psli->sli3_ring[i]; in lpfc_sli_host_down()
10926 prev_pring_flag = pring->flag; in lpfc_sli_host_down()
10928 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_host_down()
10929 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_host_down()
10934 &pring->txq, list) { in lpfc_sli_host_down()
10940 &pring->txcmplq, list) { in lpfc_sli_host_down()
10943 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_host_down()
10945 pring->flag = prev_pring_flag; in lpfc_sli_host_down()
10949 pring = qp->pring; in lpfc_sli_host_down()
10950 if (!pring) in lpfc_sli_host_down()
10952 if (pring == phba->sli4_hba.els_wq->pring) { in lpfc_sli_host_down()
10953 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_host_down()
10957 prev_pring_flag = pring->flag; in lpfc_sli_host_down()
10958 spin_lock(&pring->ring_lock); in lpfc_sli_host_down()
10960 &pring->txq, list) { in lpfc_sli_host_down()
10965 spin_unlock(&pring->ring_lock); in lpfc_sli_host_down()
10967 &pring->txcmplq, list) { in lpfc_sli_host_down()
10970 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_host_down()
10972 pring->flag = prev_pring_flag; in lpfc_sli_host_down()
11004 struct lpfc_sli_ring *pring; in lpfc_sli_hba_down() local
11027 pring = &psli->sli3_ring[i]; in lpfc_sli_hba_down()
11029 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_hba_down()
11030 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_hba_down()
11034 list_splice_init(&pring->txq, &completions); in lpfc_sli_hba_down()
11038 pring = qp->pring; in lpfc_sli_hba_down()
11039 if (!pring) in lpfc_sli_hba_down()
11041 spin_lock(&pring->ring_lock); in lpfc_sli_hba_down()
11042 list_splice_init(&pring->txq, &completions); in lpfc_sli_hba_down()
11043 spin_unlock(&pring->ring_lock); in lpfc_sli_hba_down()
11044 if (pring == phba->sli4_hba.els_wq->pring) { in lpfc_sli_hba_down()
11045 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_hba_down()
11151 lpfc_sli_ringpostbuf_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ringpostbuf_put() argument
11157 list_add_tail(&mp->list, &pring->postbufq); in lpfc_sli_ringpostbuf_put()
11158 pring->postbufq_cnt++; in lpfc_sli_ringpostbuf_put()
11204 lpfc_sli_ring_taggedbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ring_taggedbuf_get() argument
11208 struct list_head *slp = &pring->postbufq; in lpfc_sli_ring_taggedbuf_get()
11212 list_for_each_entry_safe(mp, next_mp, &pring->postbufq, list) { in lpfc_sli_ring_taggedbuf_get()
11215 pring->postbufq_cnt--; in lpfc_sli_ring_taggedbuf_get()
11225 pring->ringno, (unsigned long) tag, in lpfc_sli_ring_taggedbuf_get()
11226 slp->next, slp->prev, pring->postbufq_cnt); in lpfc_sli_ring_taggedbuf_get()
11248 lpfc_sli_ringpostbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ringpostbuf_get() argument
11252 struct list_head *slp = &pring->postbufq; in lpfc_sli_ringpostbuf_get()
11256 list_for_each_entry_safe(mp, next_mp, &pring->postbufq, list) { in lpfc_sli_ringpostbuf_get()
11259 pring->postbufq_cnt--; in lpfc_sli_ringpostbuf_get()
11269 pring->ringno, (unsigned long long)phys, in lpfc_sli_ringpostbuf_get()
11270 slp->next, slp->prev, pring->postbufq_cnt); in lpfc_sli_ringpostbuf_get()
11380 lpfc_sli_abort_iotag_issue(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_abort_iotag_issue() argument
11420 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_abort_iotag_issue()
11451 pring = lpfc_sli4_calc_ring(phba, abtsiocbp); in lpfc_sli_abort_iotag_issue()
11452 if (unlikely(pring == NULL)) in lpfc_sli_abort_iotag_issue()
11455 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli_abort_iotag_issue()
11456 retval = __lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_iotag_issue()
11458 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli_abort_iotag_issue()
11460 retval = __lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_iotag_issue()
11489 lpfc_sli_issue_abort_iotag(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_issue_abort_iotag() argument
11509 if (!pring) { in lpfc_sli_issue_abort_iotag()
11522 (pring->ringno == LPFC_ELS_RING)) { in lpfc_sli_issue_abort_iotag()
11531 retval = lpfc_sli_abort_iotag_issue(phba, pring, cmdiocb); in lpfc_sli_issue_abort_iotag()
11552 struct lpfc_sli_ring *pring; in lpfc_sli_hba_iocb_abort() local
11558 pring = &psli->sli3_ring[i]; in lpfc_sli_hba_iocb_abort()
11559 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_hba_iocb_abort()
11564 pring = qp->pring; in lpfc_sli_hba_iocb_abort()
11565 if (!pring) in lpfc_sli_hba_iocb_abort()
11567 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_hba_iocb_abort()
11732 lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, in lpfc_sli_abort_iocb() argument
11803 ret_val = lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_iocb()
11838 lpfc_sli_abort_taskmgmt(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, in lpfc_sli_abort_taskmgmt() argument
11878 phba->sli4_hba.hdwq[iocbq->hba_wqidx].io_wq->pring; in lpfc_sli_abort_taskmgmt()
11949 ret_val = __lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_taskmgmt()
12108 struct lpfc_sli_ring *pring; in lpfc_sli_issue_iocb_wait() local
12113 pring = lpfc_sli4_calc_ring(phba, piocb); in lpfc_sli_issue_iocb_wait()
12115 pring = &phba->sli.sli3_ring[ring_number]; in lpfc_sli_issue_iocb_wait()
12180 list_for_each_entry(iocb, &pring->txq, list) { in lpfc_sli_issue_iocb_wait()
12183 list_for_each_entry(iocb, &pring->txcmplq, list) { in lpfc_sli_issue_iocb_wait()
12918 struct lpfc_sli_ring *pring; in lpfc_sli_fp_intr_handler() local
12963 pring = &phba->sli.sli3_ring[LPFC_FCP_RING]; in lpfc_sli_fp_intr_handler()
12965 lpfc_sli_handle_fast_ring_event(phba, pring, status); in lpfc_sli_fp_intr_handler()
13267 struct lpfc_sli_ring *pring; in lpfc_sli4_els_wcqe_to_rspiocbq() local
13272 pring = lpfc_phba_elsring(phba); in lpfc_sli4_els_wcqe_to_rspiocbq()
13273 if (unlikely(!pring)) in lpfc_sli4_els_wcqe_to_rspiocbq()
13277 pring->stats.iocb_event++; in lpfc_sli4_els_wcqe_to_rspiocbq()
13279 cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, in lpfc_sli4_els_wcqe_to_rspiocbq()
13291 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli4_els_wcqe_to_rspiocbq()
13293 lpfc_sli_ringtxcmpl_put(phba, pring, cmdiocbq); in lpfc_sli4_els_wcqe_to_rspiocbq()
13294 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_els_wcqe_to_rspiocbq()
13526 struct lpfc_sli_ring *pring = cq->pring; in lpfc_sli4_sp_handle_els_wcqe() local
13544 if (!list_empty(&pring->txq)) in lpfc_sli4_sp_handle_els_wcqe()
13546 if (!list_empty(&pring->txcmplq)) in lpfc_sli4_sp_handle_els_wcqe()
14065 struct lpfc_sli_ring *pring = cq->pring; in lpfc_sli4_fp_handle_fcp_wcqe() local
14091 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli4_fp_handle_fcp_wcqe()
14092 pring->stats.iocb_event++; in lpfc_sli4_fp_handle_fcp_wcqe()
14093 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_fp_handle_fcp_wcqe()
14094 cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, in lpfc_sli4_fp_handle_fcp_wcqe()
16086 wq->pring = kzalloc(sizeof(struct lpfc_sli_ring), GFP_KERNEL); in lpfc_wq_create()
16087 if (wq->pring == NULL) { in lpfc_wq_create()
16807 kfree(wq->pring); in lpfc_wq_destroy()
16808 wq->pring = NULL; in lpfc_wq_destroy()
18285 phba->sli4_hba.els_wq->pring, in lpfc_sli4_send_seq_to_ulp()
20020 struct lpfc_sli_ring *pring; in lpfc_drain_txq() local
20034 pring = wq->pring; in lpfc_drain_txq()
20039 pring = lpfc_phba_elsring(phba); in lpfc_drain_txq()
20042 if (unlikely(!pring) || list_empty(&pring->txq)) in lpfc_drain_txq()
20045 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_drain_txq()
20046 list_for_each_entry(piocbq, &pring->txq, list) { in lpfc_drain_txq()
20050 if (txq_cnt > pring->txq_max) in lpfc_drain_txq()
20051 pring->txq_max = txq_cnt; in lpfc_drain_txq()
20053 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
20055 while (!list_empty(&pring->txq)) { in lpfc_drain_txq()
20056 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_drain_txq()
20058 piocbq = lpfc_sli_ringtx_get(phba, pring); in lpfc_drain_txq()
20060 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
20068 __lpfc_sli_ringtx_put(phba, pring, piocbq); in lpfc_drain_txq()
20069 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
20086 lpfc_sli_ringtxcmpl_put(phba, pring, piocbq); in lpfc_drain_txq()
20098 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
20247 struct lpfc_sli_ring *pring; in lpfc_sli4_issue_wqe() local
20253 pring = phba->sli4_hba.nvmels_wq->pring; in lpfc_sli4_issue_wqe()
20254 lpfc_qp_spin_lock_irqsave(&pring->ring_lock, iflags, in lpfc_sli4_issue_wqe()
20258 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20264 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20271 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20275 lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); in lpfc_sli4_issue_wqe()
20276 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20286 pring = wq->pring; in lpfc_sli4_issue_wqe()
20290 lpfc_qp_spin_lock_irqsave(&pring->ring_lock, iflags, in lpfc_sli4_issue_wqe()
20294 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20297 lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); in lpfc_sli4_issue_wqe()
20298 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20308 pring = wq->pring; in lpfc_sli4_issue_wqe()
20320 lpfc_qp_spin_lock_irqsave(&pring->ring_lock, iflags, in lpfc_sli4_issue_wqe()
20324 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20327 lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); in lpfc_sli4_issue_wqe()
20328 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
20367 txcmplq_cnt = qp->io_wq->pring->txcmplq_cnt; in lpfc_snapshot_mxp()
20437 txcmplq_cnt = qp->io_wq->pring->txcmplq_cnt; in lpfc_adjust_high_watermark()
20722 txcmplq_cnt = qp->io_wq->pring->txcmplq_cnt; in lpfc_release_io_buf()